/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Problem med selektiv JOIN
Fra : nutman
Vist : 523 gange
154 point
Dato : 10-01-06 22:37

Ok, jeg har 2 tabeller med data i:

Tabel 1            Tabel 2 (Relationstabel)

ProduktID   ProduktNavn    ProduktID   ForhandlerID
--------------------------------   ----------------------------
1   Produkt1    1   1
2   Produkt2

Jeg ønsker at lave en SQL sætning, hvor der returneres alle de produkter, som ikke allerede er relateret med Forhandler1 - dvs. Produkt2.

Og tro mig - jeg har forsøgt mig med tonsvis af JOINS, både LEFT, RIGHT, INNER og NATURAL, men har endnu ikke fundet løsningen. Jeg har stirret mig blind på det og er sikker på, at løsningen er ligefrem - jeg kan bare ikke se den.

Kan nogen hjælpe mig?

PS: Jeg bruger MySQL, så subselects kan ikke bruges.

 
 
Kommentar
Fra : pmbruun


Dato : 11-01-06 09:00

Hej Nutman,

Hvilken version af MySQL bruger du dog? Nyeste er version 5.1, men allerede 4.1 understøtter subqueries. Fra og med version 4.1 kan du altså skrive:

select * from Tabel1 where not exists (select * from Tabel2 where Tabel2.ProduktID = Tabel1.ProduktID);

I oldnordiske versioner af MySQL, d.v.s. før 4.1, kan du skrive:

SELECT Tabel1.* FROM Tabel1
LEFT JOIN Tabel2 ON Tabel2.ProduktID = Tabel1.ProduktID
WHERE Tabel2.ProduktID IS NULL;

Jeg har ikke testet det; men eksemplet er hentet fra manualen:

http://dev.mysql.com/doc/refman/4.1/en/rewriting-subqueries.html

Med andre ord: RTFM

Med venlig hilsen

Peter


Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177425
Tips : 31962
Nyheder : 719565
Indlæg : 6407916
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste