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

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

SQL - SELECT * WHERE perm=4 AND perm=7…

22.09.2017 napsal Pixie

Vyřešeno
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

Zobrazit odpovědi

Nejlépe hodnocení uživatelé
Hanz

Počet UP: 5096

React: 215

Rusty

Počet UP: 2354

React: 100

OL3G

Počet UP: 1638

React: 60

SYSTEM

Počet UP: 440

React: 23

Strosmajer

Počet UP: 497

React: 23

Oxytocin

Počet UP: 298

React: 18

Hyacint

Počet UP: 40

React: 14

RE: SQL - SELECT * WHERE perm=4…

23.09.2017 odpověděl Hanz

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