Topic: Dubliuojanciu irasu uzfiksavimas tarp dvieju ir daugiau lenteliu
Sveiki,
Biski strigau. Istraukiant duomenis is mysql, noriu paryskinti eilutes, kuriose vieno stulpelio reiksmes yra vienodos (dubliuojasi).
Mazdaug taip:
ID, Pavadinimas
1 - AAA
2 - BBB
2 - CCC
3 - DDD
Siuo atveju dvi eilutes su ID = 2 turetu buti pazymetos kita spalva.
Vienas is rekomenduojamu sprendimu butu daryti kazka tokio:
select id, pavadinimas, t.skaicius
from table
join (select id, count(id) as skaicius from table group by id) as t
on table.id=t.id
Ir gauti:
ID, Pavadinimas, Skaicius
1 - AAA - 1
2 - BBB - 2
2 - CCC - 2
3 - DDD - 1
O ka daryti jeigu turi ne viena lentele, bet dvieju lenteliu jungini? t.y. turi ne table bet "table1 join table2".
Toks bajeris nepraeina (tmptable does not exist):
select * from
(
select id, pavadinimas
from table1 join table2 using (id)
) as tmptable
join (select id, count(id) as skaicius from tmptable group by id) as t
on tmptable.id=t.id
Kaip man pagriebti dvieju sujungtu lenteliu rezultata, kad poto per ji praskanuoti ir surasti tuos irasus kurie dubliuojasi ir tada juos atvaizduoti naujame stulpelyje?
Dekavoju