webForumDet fria alternativet

Få med ett fält oberoende av andra...

Databaser & SQL

16 svar · 693 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1
SELECT a.txt, b.cat
FROM tbl_b b,tbl_a a 
WHERE b.id=1 AND a.id=1 AND a.uid=32
ORDER BY b.cat

Detta hämtar ju två fält, men problemet är att om b.cat inte finns så visas inte a.txt.

Jag skulle vilja att även a.txt visades oavsätt om b.cat finns eller ej. Hur gör jag då?

Medlem sedan juli 20033 147 inlägg
#2

Har du någon relation mellan tabellerna? Något id som sammanbinder dem?

Medlem sedan okt. 20041 556 inlägg
#3

Jag skrev fel. Det skall se ut så här:

SELECT a.txt, b.cat
FROM tbl_b b,tbl_a a 
WHERE a.id=b.id AND a.uid=32
ORDER BY b.cat
Medlem sedan dec. 20003 563 inlägg
#4

Gör en left join.

SELECT a.txt, b.cat
FROM tbl_a a left join tbl_b b on a.id = b.id
WHERE a.uid=32
ORDER BY b.cat
Medlem sedan juli 20033 147 inlägg
#5
select
   a.txt,
   b.cat
from
   tbl_a a
left join
   tbl_b b on a.id = b.id
where
   a.uid = 32
order by
   b.cat

Borde göra susen. :)

/r Redigerar eftersom jag joinat tabellerna "åt fel håll". :)

Medlem sedan dec. 200012 464 inlägg
#6
SELECT a.txt, b.cat
FROM tbl_a a left join tbl_b b 
on  a.id = b.id 
where a.uid=32
ORDER BY b.cat
Medlem sedan okt. 20041 556 inlägg
#7

Tack, nu har jag att välja ibland... :e

Medlem sedan dec. 20003 563 inlägg
#8

*Tycker faktiskt Meleas indentering är snyggast* ;)

Medlem sedan juli 20033 147 inlägg
#9

Haha, snacka om törstiga på att hjälpa till. ;)

Medlem sedan okt. 20041 556 inlägg
#10

Resultatet blir tyvärr det samma.
Det är bara om b.cat innehåller något som a.txt visas.

Har även testat LarsG's variant. (växlat tablellerna)

Medlem sedan dec. 20003 563 inlägg
#11

oops

SELECT a.txt, b.cat
FROM tbl_a a left [b]outer[/b] join tbl_b b on a.id = b.id
WHERE a.uid=32
ORDER BY b.cat
Medlem sedan okt. 20041 556 inlägg
#12

Nä, det blir ingen skillnad

Medlem sedan dec. 200012 464 inlägg
#13

Vad menar du med växla tabellerna? Om du bytte plats på dom i join-klausulen så låt bli det.

Medlem sedan okt. 20041 556 inlägg
#14

Ja, men du skriver:FROM tbl_a a left join tbl_b b
och melea skriver: FROM tbl_b b left join tbl_a a

Medlem sedan dec. 20003 563 inlägg
#15

Och jag skriver FROM tbl_a a left join tbl_b b.
2 mot 1 vilket gör att vi automatiskt har rätt. ;)

Skillnaden är att det ena fungerar och det andra inte.

Säker på att min senaste verkligen inte stämmer?

Medlem sedan juli 20033 147 inlägg
#16

*Har nu redigerat mitt inlägg* :r

Medlem sedan okt. 20041 556 inlägg
#17

Det funkar nu. Jag hade skrivit ...WHERE b.id=32...

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)