Sziasztok!
A következőt szeretném megvalósítani:
Szeretném egy MSSQL adatbázisban a következőt megcsinálni, kicsit egyszerűsítettem a feladaton:
1. tábla
id
fk_id
kod
2. tábla
id
1_id
A két tábla így van összekötve: join fk_id = 1_id, 1:1 kapcsolat
Szeretném leválogatni az 1. tábla azon mezőit, amihez nem tartozik a 2. táblában rekord, lehetőleg egy egyszerű select utasítással.
Valami ötlet?
- 869 megtekintés
Hozzászólások
Hülye vagyok!
Azt kell keresnem, ahol fk_id is null!
Bocs!
Szerk: mégsem jó:
1. táblába nincs fk_id
join 1_tabla.id = 2_tabla.1_id
Tehát a kérdés újra áll!
- A hozzászóláshoz be kell jelentkezni
Oracle alatt:
SELECT 1_tabla.id FROM 1_tabla
MINUS
SELECT 2_tabla.1_id FROM 2_tabla
Gondolom, MSSQL alatt is van valami hasonló.
- A hozzászóláshoz be kell jelentkezni
törölve
- A hozzászóláshoz be kell jelentkezni
ha pl. kategoria -> termekek jellegu kapcsolat van, es azokat a termekeket keresed, ami nincs kategoriaban, vagy nemletezoben van:
SELECT t.* FROM termekek as t
LEFT JOIN kategoriak as k ON t.k_id = k.id
WHERE k.id IS NULL
Ha azok a kategoriak kellenek, amiben nincs termek:
SELECT distinct k.* FROM kategoriak as k
LEFT JOIN termekek as t ON k.id = t.k_id
WHERE t.id IS NULL
Tyrael
- A hozzászóláshoz be kell jelentkezni
Igen, ez volt a megoldás, tehát left join.
SELECT t.* FROM termekek as t
LEFT JOIN kategoriak as k ON t.k_id = k.id
WHERE k.id IS NULL
- A hozzászóláshoz be kell jelentkezni