Ezt az sql lekérdezést, hogy kell megírni?
Pl.
Van egy 'users' tábla amikbe a felhasználók vannak és van egy 'orders' tábla amibe pedig a felhasználók rendelései vannak.
Az 'orders' táblába van egy 'userid' oszlop ami a felhasználó id-jét tárolja aki leadta a rendelést.
Így kérdezem le, hogy kik rendeltek eddig
SELECT users.name FROM users
INNER JOIN orders ON orders.userid = users.id;
és az érdekelne, hogy ennek az ellentétét, hogy lehet lekérdezni akik eddig még nem rendeltek és nem szerepelnek egyáltalán az 'orders' táblában.
Időközben megtaláltam a megoldást.
SELECT users.name FROM users
LEFT JOIN orders ON orders.userid = users.id
WHERE orders.userid IS NULL;
Alternatív megoldás:
SELECT users.name FROM users
WHERE NOT users.id IN SELECT orders.userid FROM orders;
Utolsóét javítva*:
SELECT users.name FROM users
WHERE users.id NOT IN SELECT orders.userid FROM orders;
Amit akarsz az pl megoldható így:
SELECT name FROM users
WHERE name NOT IN
(
SELECT DISTINCT userid FROM orders
)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!