Autor | Zpráva | ||
---|---|---|---|
Richard82 Profil |
Zdravím, mám trochu problém s SQL dotazem, proto se na vás s prozbou obracím.
Nejsem v tom moc kovaný a nevím, jak to vyřešit. Mám dvě tabulky. Produkty id product description price Objednavky id id_product id_user Potřebuji udělat dotaz jen z tabulky Produkty tak, aby když se bude spojení Produkty.id = Objednavky.id_product , tak aby tento řádek z tabulky Produkty vůbec ve výsledku nezobrazil. Prostě pokud bude objednávka k určitému produktu, nesmí už být product v selectu. Teď jsem studoval JOINY, ale nepřišel jsem na to. Díky za pomoc chlapi. Moderátor Kajman: Mezi značky [>pre] a [>/pre] vkládejte prosím jen kódy.
|
||
Kajman Profil |
#2 · Zasláno: 6. 10. 2015, 13:49:15
Např.
SELECT p.* FROM produkty p LEFT JOIN objednavky o ON p.id = o.id_product # AND o.id = 2015 # AND o.id_user = 42 WHERE o.id_product IS NULL |
||
Richard82 Profil |
#3 · Zasláno: 6. 10. 2015, 13:58:27
Co znamená 5 a 6. řádek ?
Taky nechápu produkty p a objednavky o. K čemu jsou tam písmenka na konci? |
||
Taps Profil |
#4 · Zasláno: 6. 10. 2015, 14:10:36
Richard82:
„Co znamená 5 a 6. řádek ?“ řádky jsou zakomentované to znamená, že nejsou nutné pro řešení tvé problematiky „K čemu jsou tam písmenka na konci?“ Jedná se o tvz. aliasy tabulky |
||
Richard82 Profil |
#5 · Zasláno: 6. 10. 2015, 14:40:29
Díky moc
|
||
Kajman Profil |
#6 · Zasláno: 6. 10. 2015, 15:32:19
Richard82:
- Bez řádků 5 a 6 to vypíše jen ty produkty, které nejsou ani v jedné objednávce. - Po odkomentování řádku 5 to vypíše jen ty produkty, které nejsou použity v objednávce číslo 2015. - Po odkomentování řádku 6 to vypíše jen produkty, které si nikdy neobjednal uživatel číslo 42. Nebyl jsem si jistý, co ve výsledku vlastně potřebujete, tak aby bylo vidět, že ty případné podmínky patří do pokusu o spojení. |
||
Časová prodleva: 9 let
|
0