Gå til innhold

[Løst]Order etter COUNT fra annet table gir problemer


Anbefalte innlegg

Hei folk og dyr. Først og fremst, beklager tittelen, vansklig å beskrive problemet mitt. Anyways, greia er at jeg har et table med kategorier og et med linker. Jeg vil få ut MySQL spørringen etter hvor mange linker som er i de forskjellige kategoriene. Spørringen jeg har under funker kjempefint, men spørringen viser ikke kategorier hvor det er 0 linker i den. Oppbygging av database under.

 

SELECT t1.*, COUNT(t2.link_id) as 'Total' FROM pub_kategori t1, pub_link t2 WHERE t1.kategori_id = t2.link_kategori GROUP BY t1.kategori_id

 

pub_kategori

kategori_id | kategori_navn
1		   | kategori 1
2		   | kategori 2
3		   | kategori 3

 

pub_link

link_id | link_kategori | link_navn
1	   | 1			 | link 1
2	   | 1			 | link 2
3	   | 1			 | link 3
4	   | 2			 | link 4
5	   | 2			 | link 5

 

I dette tilfellet gir MySQL spørringen min ut at Kategori 1 har 3 linker i seg, kategori 2 har 2 og kategori 3 blir ikke vist i det heletatt.

 

Noen som veit åssen jeg kan løse dette? Relativt ulært i MySQL så jeg klarer nok ikke å løse denne på egenhånd.

 

All hjelp mottas med et stort takk og <3

 

- Thomas

Lenke til kommentar
Videoannonse
Annonse

SELECT t1.*, COUNT(t2.link_id) as 'Total' FROM pub_kategori t1, pub_link t2 WHERE t1.kategori_id = t2.link_kategori GROUP BY t1.kategori_id

 

Med LEFT JOIN blir det:

 

SELECT t1.*, COUNT(t2.link_id) as 'Total' FROM pub_kategori t1 LEFT JOIN pub_link t2 ON tl.kategori_id = t2.link_kategori GROUP BY tl.kategori_id;

 

Dette mener jeg (uten å ha testet det) skal virke med LEFT JOIN, men om det løser problemet ditt er jeg litt usikker på.

 

(Ta en titt her: http://www.w3schools.com/sql/sql_join_left.asp )

Lenke til kommentar

Takk skal du ha. Måtte endre spørringen en del, men fikk det til til slutt.

 

SELECT t1 . * , COUNT( t2.link_id ) AS 'Total'
FROM pub_kategori t1
LEFT JOIN pub_link t2 ON kategori_id = link_kategori
GROUP BY kategori_id

Endret av TheClown
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...