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
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
Co znamená 5 a 6. řádek ?
Taky nechápu produkty p a objednavky o. K čemu jsou tam písmenka na konci?
Taps
Profil
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
Díky moc
Kajman
Profil
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í.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0