webForumDet fria alternativet

INNER JOIN problem!

4 svar · 152 visningar · startad av Mungo

MungoMedlem sedan jan. 2000372 inlägg
#1

Jäklar vad SQL snabbt blir svårt! :) Kanske nån här kan hjälpa mig att få fart på följande problem:

Jag har tre tabeller, en som innehåller ID på användare, en som innehåller ID på project och sen en som innehåller båda, för att koppla medlemmar till projekt.

Hänger du med så här långt? :)

Nu har jag frågan:

SELECT u.firstname AS firstname, u.lastname AS lastname, c.name as customerName, u.userID AS userID FROM Users_details u INNER JOIN Project_Members p ON u.UserID <> p.userID INNER JOIN Customers c ON u.CustomerId = c.id WHERE p.projectID = 65 ORDER BY c.name, u.lastname

Alltså vill jag få ut en lista på alla userID från users_details som INTE finns någonstans i project_members där projectID är 65.

Det som händer är att jag får ut lite för många svar. :) Om t.ex. projekt 65 har två medlemmar, id 1 och 2 så får jag ut 2 ex av alla som inte är id 1 eller 2 men dessutom EN av id 1 och 2. Hänger du med nu också? :)

Kanske ser nån vad som är fel i denna fråga och kan hjälpa mig att fixa till den, då skulle jag bli oerhört glad och tacksam!

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT u.firstname AS firstname, 
       u.lastname AS lastname, 
       c.name as customerName, 
       u.userID AS userID 
  FROM Users_details u  INNER JOIN Customers c ON u.CustomerId = c.id 
  WHERE u.userid not in (select userid from project_members 
                          where projectid = 65)
ORDER BY c.name, u.lastname

red: felaktigt kolumnnamn
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 09 nov 2001]

MungoMedlem sedan jan. 2000372 inlägg
#3

Ojdå, jag skulle visst ha sagt att det är mySQL jag använder också... IN verkar inte funka med mySQL nämligen. Därav dessa INNER JOIN klurigheter som jag egentligen inte kan nåt om...

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jo, det är relevant i sammanhanget då mysql inte har stöd för subselect.

SELECT u.firstname AS firstname, 
       u.lastname AS lastname, 
       c.name as customerName, 
       u.userID AS userID 
  FROM Users_details u  INNER JOIN Customers c ON u.CustomerId = c.id 
  left join project_members p on c.userid = p.userid and p.projectid = 65
  where p.userid is null
ORDER BY c.name, u.lastname

------------------
essentitia preter non sans multiplicandum

MungoMedlem sedan jan. 2000372 inlägg
#5

Japp! Funkar! 10000 tack för hjälpen!

125 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)