SQL - SELECT * WHERE perm=4 AND perm=7 GROUP BY users

1 odpovědí
22.09.2017 napsal Pixie dotaz do kategorie programovani 7 / 7

SQL - SELECT * WHERE perm=4 AND perm=7 GROUP BY users

Vyřešeno

databaze sql mysql subquery

Dobrý den,

mám SQL tabulku, kdy potřebuji ve sloupci "users" najít všechny uživatele, kteří mají oprávění ve sloupci "perm" nastaveno na 4 a 7. Zároveň chci toho uživatele zobrazit jen jednou.


USERS | PERM
karel | 4
martina | 5
čenda | 4
karel | 7
martina | 3
václav | 1
radek | 7
radek | 4


Když dám SELECT users FROM table WHERE perm=4 AND perm=7 GROUP BY users tak:
....
nedostanu žádný výsledek


Když dám SELECT users FROM table WHERE perm=4 OR perm=7 GROUP BY users, tak dostanu
....
karel (má 4 a 7)
radek (má 4 a 7)
čenda (má jen 4) = to je špatně


Já chci ale pouze ty, který splňují perm=4 AND perm=7 + je seskupit (zobrazit jen jednou dané jméno), tzn:
....
karel
radek


Víte někdo jak na to? Moc díky

23.09.2017 odpověděl Hanz Superuser
Zkontrolováno

Dobrý den,

udělejte to pomocí SQL poddotazu (subquery) a "WHERE exists":


SELECT users as u, perm
FROM table
WHERE perm='4'
and exists(SELECT users FROM table WHERE users = u and perm='7')


Výsledek:

....
karel
radek



Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace