Topic: problem query

ja har 2 tabeller, den första:

|id|namn|blabla|

den andra:

|id|namn|id_pa_forsta_tabellen|


nu vill ja göra detta:

select t1.*, count(t2.*) from..

alltså, vill ha allt från t1 och antalet rader som innehåller id nummret på första tabellen, de funkar så länge de finns en rad med de id:et i andra tabellen, men när inte de finns får jag inget tillbaka.

hur gör jag detta? smile

antingen är jag fredagsfull (som vanligt wink ) eller så e re lite klurigt? smile

www.hellburner.net | Party! | uin: 47753803

Re: problem query

Hmm. Jag fattar inte riktigt, men det är inte en LEFT JOIN du är ute efter?

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: problem query

jag vet inte, sql syntax är väl inte min starka sida.. smile

alltså, jag vill ha ut allt ur ena tabellen och räkna antalet rader i andra som har id:et från första tabellen i en column.

www.hellburner.net | Party! | uin: 47753803

Re: problem query

du hade rätt, left join var svaret, varför elelr hur de funkar vet ja inte riktigt men de gör de, hehe

mysql> SELECT t1.*, COUNT(t2.id) FROM party_data AS t1 LEFT JOIN party_replay AS t2 ON t1.id = t2.dataid WHERE t1.id = '171' GROUP BY t1.id;
+-----+---------------+------------------------------------------------------+------------------+------+---------+-------+--------------+
| id  | name          | descript                                             | dir              | type | partyid | klick | COUNT(t2.id) |
+-----+---------------+------------------------------------------------------+------------------+------+---------+-------+--------------+
| 171 | Image-008.JPG | vilken underbar syn!!:) som i himmelen, fast bättre! | Midsommar_2002/1 | pic  |      10 |     9 |            1 |
+-----+---------------+------------------------------------------------------+------------------+------+---------+-------+--------------+
1 row in set (0.00 sec)

mysql> SELECT t1.*, COUNT(t2.id) FROM party_data AS t1 LEFT JOIN party_replay AS t2 ON t1.id = t2.dataid WHERE t1.id = '170' GROUP BY t1.id;
+-----+---------------+-------------------+------------------+------+---------+-------+--------------+
| id  | name          | descript          | dir              | type | partyid | klick | COUNT(t2.id) |
+-----+---------------+-------------------+------------------+------+---------+-------+--------------+
| 170 | Image-007.JPG | vart e ölen....?? | Midsommar_2002/1 | pic  |      10 |     3 |            0 |
+-----+---------------+-------------------+------------------+------+---------+-------+--------------+
1 row in set (0.00 sec)
www.hellburner.net | Party! | uin: 47753803

Re: problem query

LEFT JOIN skiljer sig från en vanlig INNER JOIN på den punkten att "ON-villkoret" inte måste uppfyllas. Om man joinar tabell A med tabell B och villkoret inte kan uppfyllas kommer värdena ifrån B vara null.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: problem query

ah, perfekt, nu klarnar de lite mer smile

*skriva upp och spara*

www.hellburner.net | Party! | uin: 47753803