Autor | Zpráva | ||
---|---|---|---|
petr522011 Profil * |
#1 · Zasláno: 5. 2. 2011, 23:02:33
Ahoj. Zkoušel jsem si udělattyto tabulky:
KATEGORIE id | kategorie | clanek_id 0 | kateogrieA| 1 1 | kateogrieB| 1 2 | kateogrieC| 1 ČLÁNKY id | název 1 | název Chtěl jsem si pomocí dotazu vypsat články, které mají kategorie='kateogrieA' and kategorie='kateogrieB'. Ale pomocí podmínky WHERE se mi to nepodařilo uděl. Dotaz fungoval jen když jsem měl zadanou jen jednu podmínku np. kategorie='kateogrieB'. SELECT * FROM clanky LEFT JOIN kategorie ON clanky.id=kategorie.clanek_id WHERE kategorie.kategorie='kateogrieA' and kategorie.kategorie='kateogrieB' Mohl byste mi někdo říci, proč mi to nefunguje? Děkuji |
||
Taps Profil |
#2 · Zasláno: 5. 2. 2011, 23:04:45
petr522011:
zkus SELECT * FROM clanky LEFT JOIN kategorie ON clanky.id=kategorie.clanek_id WHERE kategorie.kategorie='kateogrieA' or kategorie.kategorie='kateogrieB' |
||
petr522011 Profil * |
#3 · Zasláno: 5. 2. 2011, 23:06:28
To by mne vypsalo články, které mají kateogrieA či kateogrieB.
Ale chci vypsat články, které mají kateogrieA a zároveň kateogrieB |
||
Taps Profil |
#4 · Zasláno: 5. 2. 2011, 23:12:46
petr522011:
to co jsem napsal zajistí výpis záznamu z kategorií A a B, takže to nechceš ? |
||
TomášK Profil |
#5 · Zasláno: 5. 2. 2011, 23:13:35
|
||
petr522011 Profil * |
#6 · Zasláno: 5. 2. 2011, 23:16:11
tohle nechci. To by mi vypsalo články, které mají kateogrieA nebo kateogrieB
potřebuji vypsat články, které mají podmínku, že musí být v kateogrieA a kateogrieB |
||
Kajman_ Profil * |
#7 · Zasláno: 5. 2. 2011, 23:17:50
petr522011:
Ale kdepak, asi jste nečetl odpověď http://diskuse.jakpsatweb.cz/?action=vthread&forum=28&topic=121243#2 |
||
petr522011 Profil * |
#8 · Zasláno: 5. 2. 2011, 23:20:01
ano teď zkouším. Až po odeslání mé odepovedi se zobrazila zpráva od TomášK
|
||
Anonymní Profil * |
#9 · Zasláno: 5. 2. 2011, 23:28:23
Mám tohle:
SELECT clanky.id FROM clanky LEFT JOIN kategorie ON clanky.id=kategorie .clanek_id WHERE kategorie.kategorie IN ('kateogrieA','kateogrieB') GROUP BY clanky.id a to mi nevrátí články, které mají kateogrieA nebo kateogrieB... - chci jen, které mají obě |
||
Kajman_ Profil * |
#10 · Zasláno: 5. 2. 2011, 23:32:44
Však jste to nepoužil všechno, ta podmínka v having je důležitá!
SELECT clanky.id FROM clanky INNER JOIN kategorie ON clanky.id=kategorie.clanek_id WHERE kategorie.kategorie IN ('kateogrieA','kateogrieB') GROUP BY clanky.id HAVING count(distinct kategorie.kategorie)=2 -- číslo se mění s počtem hledaných kategorií |
||
petr522011 Profil * |
#11 · Zasláno: 5. 2. 2011, 23:33:37
já nemehlo, mockrát děkuji :-)
|
||
petr522011 Profil * |
#12 · Zasláno: 6. 2. 2011, 11:04:37
Mohl bych ještě vědět, jak by se přidala tato podmínka?
Vypiš všechny články, které mají kateogrieA a kateogrieB A kateogrieA musí mít ID0 a KategorieB musí mít ID1 pomocí IN mi to nešlo |
||
Kajman_ Profil * |
#13 · Zasláno: 6. 2. 2011, 15:24:22
Podle id dáte jednoduše jen
WHERE kategorie.id IN (0,1) Celá podmínka jde také zapsat, ale smysl mi uniká. WHERE ((kategorie.kategorie='kateogrieA' AND kategorie.id=0) or (kategorie.kategorie='kategorieB' AND kategorie.id=1)) |
||
Časová prodleva: 13 let
|
0