Hej!
Får inte ihop denna fråga. Tacksam för hjälp.
SELECT * FROM tblProject_pro pro INNER JOIN tblUsr_Link_tblPro_ulp ulp ON pro.intId = ulp.intId_pro JOIN tblUser_usr usr ON usr.intId = ulp.intId_usr WHERE pro.intId = 41
Det jag får ut med denna fråga:
Projektet och dess värden och de användare och dess värden som är kopplade till projektet. Ej övriga användare samt ingenting om det inte är några användare kopplade till projektet.
Det jag vill ha ut är följande:
Det valda projektet och dess värden (pro.intId) men alla användare (både de som mär kopplade till projektet och inte). Projektet skall visas även om det inte finns några användare kopplade till det.
Tabeller:
tblProject_pro = Projekt tabellen
tblUsr_Link_tblPro_ulp = Länktabellen mellan användare och projekt
tblUser_usr = Användartabellen
Mvh
Martin
LarsGMedlem sedan dec. 200012 464 inlägg SELECT *
FROM tblProject_pro pro left outer JOIN
tblUsr_Link_tblPro_ulp ulp
ON pro.intId = ulp.intId_pro left outer JOIN
tblUser_usr usr
ON usr.intId = ulp.intId_usr
WHERE pro.intId = 41
Hmm
Får inte det att fungera som jag tänkt mig:
Får bara upp ett resultat om det finns användare registrerade till projektet och då endast de som är registrerade.
Samma resultat som jag fick innan.
Skulle även vilja ha alla användare som finns som inte är registrerade på projektet. Skall även få samtliga användarna även om det inte är några användare registrerade på ett specifikt projekt.
/Martin
LarsGMedlem sedan dec. 200012 464 inlägg SELECT *
FROM tblUser_usr usr left outer JOIN
tblUsr_Link_tblPro_ulp ulp
ON usr.intId = ulp.intId_usr
left outer JOIN
tblProject_pro pro
ON pro.intId = ulp.intId_pro
and pro.intId = 41
wow! :)
Löste det hela.
Två grejjer till för att göra det riktigt snyggt.
Skall kunna välja att det bara är Användare med usr.intLevel < 3 som skall listas samt att användarna bara listas en gång. Det blir dubbletter på de som är kopplade till ett projekt även om jag kör DISTINCT på t ex usr.intId.
Det fungerar heller ej att skriva WHERE usr.intLevel < 3.
/Martin
LarsGMedlem sedan dec. 200012 464 inlägg Om du vill ha villkor på usr-tabellen så får du lägga dom i en ON-klausul.
SELECT *
FROM tblUser_usr usr left outer JOIN
tblUsr_Link_tblPro_ulp ulp
ON usr.intId = ulp.intId_usr and usr.intLevel < 3
left outer JOIN
tblProject_pro pro
ON pro.intId = ulp.intId_pro
and pro.intId = 41
Om du får duplikat på användare så kan det bero på att samma intid_usr finns flera gånger i link-tabellen, tex att samma person har olika roller i ett projekt. Hur är det?
select * from tbl_user, tblProject_pro pro
where pro.intId = 41
and usr.intLevel < 3