webForumDet fria alternativet

problem med SELECT-sats

4 svar · 552 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005858 inlägg
#1

Har följande:

	SELECT bt.Name as bloggTyp, b.Name as bloggName, u.UserName, b.bID, t.showName, t.mapName, 
ISNULL(p.Name, '') AS 'picture', 
ISNULL(p.height, 0) AS 'height'
	FROM blogg AS b
	INNER JOIN theme AS t
	ON b.tID = t.tID
	INNER JOIN bloggType AS bt
	ON bt.btID = b.btID
	INNER JOIN userBelongBlogg AS ubb
	On b.bID = ubb.bID
	INNER JOIN aspnet_Users As u
	On u.UserId = ubb.UserId
	Left Outer Join picture AS p
	ON p.bID = b.bID
	INNER JOIN aspnet_UsersInRoles AS uir
	ON uir.UserID = u.UserID
	INNER JOIN aspnet_Roles AS r
	ON r.RoleID = uir.RoleID
	WHERE p.Type = 1
	AND b.bID = @id	
	ORDER BY r.RoleName ASC

Men problemet är p.Type = 1, eftersom jag har left outer join på picture får jag nu inte ut några poster då det inte finns något i picture tabellen. Det är bara bilden med typen 1 som jag vill visa när den finns.

Hur löser jag detta??

Tacksam för all hjälp :stud

emissionMedlem sedan dec. 19996 095 inlägg
#2

Ta bort ur WHERE-satsen och bygg ut joinen...

Left Outer Join picture AS p
ON p.bID = b.bID AND p.Type = 1

VinnarenMedlem sedan sep. 2005858 inlägg
#3

tack, fungerade kanon.

Kan man hämta ut ev 2 rader från samma tabell men i stället för 2 rader så blir det en kolumn till i SELECT-frågan??

	SELECT bt.Name as bloggTyp, b.Name as bloggName, u.UserName, b.bID, t.showName, t.mapName, 
ISNULL(p.Name, '') AS 'picture', ISNULL(p.height, 0) AS 'height'
	FROM blogg AS b
	INNER JOIN theme AS t
	ON b.tID = t.tID
	INNER JOIN bloggType AS bt
	ON bt.btID = b.btID
	INNER JOIN userBelongBlogg AS ubb
	On b.bID = ubb.bID
	INNER JOIN aspnet_Users As u
	On u.UserId = ubb.UserId
	Left Outer Join picture AS p
	ON p.bID = b.bID AND p.Type = 1
	INNER JOIN aspnet_UsersInRoles AS uir
	ON uir.UserID = u.UserID
	INNER JOIN aspnet_Roles AS r
	ON r.RoleID = uir.RoleID
	WHERE b.bID = @id
	ORDER BY r.RoleName ASC

Vill även ha med följande:

SELECT ISNULL(pp.Name, '') AS 'profilePicture' 
FROM picture AS pp
WHERE b.bID = @id AND pp.Type = 2

Tacksam för all hjälp :stud

VinnarenMedlem sedan sep. 2005858 inlägg
#4

ingen som vet hur man gör om det går? :OO

emissionMedlem sedan dec. 19996 095 inlägg
#5

Det är bara att joina en gång till

Left Outer Join picture AS pp
ON pp.bID = b.bID AND pp.Type = 2

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb