

[MSSQL] SELECT
Ahoj potřebuju aby jste mi někdo zachránil život.. :)
ukol: Vyberte zákazníky, kteří si zarezervovali všechny lodě zelenné barvy
(Definovat SQL dotazem)
Tabulky
lod id_l,jmeno_l, typ_lodi,barva,pocet_mist
zakaznik id_z,jmeno_z,adresa
rezervace id_z,id_l, datum, cas
tzn. jestli bude lod id. jedna zelené barvy a lod id. dve zelené barvy a zakaznik č.1 bude mít v rezervaci lod č. 1 i č.2 aby dotaz vrátil zakaznika cislo jedna.. :)
Děkuji všem předem.. :)
select distinct z.* from zakaznik z join rezervace r on r.idz = z.id join lod l on l.id = r.idl
where l.barva = 'zelena';
Není to sice Mssql, ale možná to funguje i tam
Tá úloha sa mi nezdá celkom jednoznačne zadaná, ale ak chceš vybrať všetkých zákazníkov, ktorí si rezervovali iba zelené lode, tak môžeš použiť niečo takéto:
prípadne:
Alebo ak chceš vybrať zákazníkov, ktorí si rezervovali všetky dostupné lode zelenej farby, tak napr. takto:
Edit: Tie selecty v príspevkoch nado mnou vyberú zákazníkov, ktorí si rezervovali aspoň jednu zelenú loď (nie všetky).
Já potřebuju zákazníka kteří si vybrali všechny zelené lodě ne jenom jednu.. :)
Tak to je ten posledný select.
Ještě jedna maličkost ještě bych k tomu poslednímu selektu potřeboval vybrat jméno zákazníka a já nevim jak to tam zakomponovat ptž hned bude LEFT JOIN na jinou tabulku když se budu snažit INNER JOIN zakaznik kvůli tomu jmenu :(
Já to teda na konec upravil takhle,a výsledek máme stejný
Dík.. Aspoň, že mám nějaký řešení. Dostal jsem teda info ze zhora že to mám dělat přes EXISTS někde ale fakt nevim jak to bylo myšlený.. :(