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

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

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

ODPOVĚĎ

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

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář