webForumDet fria alternativet

Hämta användar och joina med två andra tabeller men visa även om någon join inte görs

Databaser & SQL

5 svar · 342 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Jag har en tabell med användare som i vissa fall är kopplade till en grupp. Nu visas alla som är kopplade till en grupp men inte de som inte är kopplade till en grupp. Hur får jag de som inte är kopplade till grupp att även visas?

Select a.*, g.gruppNamn from anvandare a, grupper g, gruppkoppling gk 
Where g.anvandarID = gk.anvandarID
And gk.gruppID = g.gruppID
Order by anvandarID
Medlem sedan juni 200032 967 inlägg
#2

Jag tycker inte att din SQL-fråga borde fungera, eftersom du inte har med användartabellen i något villkor.

- - - - -

Gör en left join.

Select a.*, g.gruppNamn from anvandare a
left join gruppkoppling gk on a.anvandarID = gk.anvandarID
left join grupper g on gk.gruppID = g.gruppID
Order by a.anvandarID

(Jag har utgått ifrån att det finns ett vettigt fält i användartabellen med namnet anvandarID).

Medlem sedan jan. 20013 406 inlägg
#3

Tack!

Medlem sedan jan. 20013 406 inlägg
#4

@nders skrev:

Jag tycker inte att din SQL-fråga borde fungera, eftersom du inte har med användartabellen i något villkor.

- - - - -

Gör en left join.

Select a.*, g.gruppNamn from anvandare a
left join gruppkoppling gk on a.anvandarID = gk.anvandarID
left join grupper g on gk.gruppID = g.gruppID
Order by a.anvandarID

(Jag har utgått ifrån att det finns ett vettigt fält i användartabellen med namnet anvandarID).

Nu har ett problem dykt upp då en användare kan vara kopplad till flera grupper och då dyker upp som dubblett i listan. Går detta att få bort. Måste jag köra en group by kanske?

Medlem sedan dec. 19996 721 inlägg
#5

Ja, en group by, eller en distinct. Men, då kan du inte plocka ut gruppnamnet och resultatet blir samma som "select * from anvandare".

Vad är syftet med att ta med gruppkopplingen egentligen?

Medlem sedan jan. 20013 406 inlägg
#6

Syftet är att få ut gruppnamnet

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)