Autor | Zpráva | ||
---|---|---|---|
suvel Profil |
#1 · Zasláno: 2. 4. 2013, 14:16:20
Omlouvám se za nepřesný název tématu, ale na nic lepšího jsem nepřišel.
Zjednodušeně: Mám tabulku firem se sloupcem firma.ico . Každá firma může mít několik provozoven - ty jsou v tabulce provozovny se sloupci provozovna.ico a provozovna.mesto (první sloupec samozřejmě koresponduje s firma.ico).
Problém nastává, jestliže chci vypsat firmy, které NEMAJÍ žádnou provozovnu v Praze: tabulka provozovna :
1 Praha 1 Brno 2 Brno 2 Ostrava SELECT firma.ico FROM firma LEFT JOIN provozovny ON `firma.ico`=`provozovna.ico` WHERE `provozovna.mesto` != 'Praha' Jenže to mi vypíše firmu 1 i firmu 2, zatímco já potřebuju jen firmu 2... A tady bych potřeboval radu - nějak se nemůžu hnout z místa :-( Díky předem. |
||
juriad Profil |
#2 · Zasláno: 2. 4. 2013, 14:23:54
SELECT firma.* FROM firma WHERE firma.ico NOT IN ( SELECT provozovna.ico FROM provozovna WHERE mesto = 'Praha' ) |
||
Kajman Profil |
Případně to lze zapsat i přes ten left join
SELECT firma.ico FROM firma LEFT JOIN provozovna ON `firma`.`ico` = `provozovna`.`ico` AND `provozovna`.`mesto` = 'Praha' WHERE `provozovna`.`ico` IS NULL |
||
suvel Profil |
#4 · Zasláno: 2. 4. 2013, 14:44:38
Díky oběma :-)
|
||
Časová prodleva: 11 let
|
0