[q]
(3) 

sql sorusu

fakyoras #1220369
selam,
aşağıdaki gibi iki tablom var. isteğim user_id'lere göre group by yapıp domain_id'si maksimum olan site_id'yi almak

select table1.user_id, max(table2.domain_id) from table1
join table2 on table2.site_id = table1.site_id
group by table1.user_id

yapınca user_id ve domain_id geliyor ama bana site_id de lazım :( tekrar join'leyince veri çoklaması oluyor. site_id'yi group by a katmadan nasıl yapabilirim?


table1
user_id user_name site_id
1 fakyoras 111
1 fakyoras 112
2 fakyo 113
2 fakyo 112
3 fak 111
3 fak 114

table2
site_id site_adi domain_id
111 ekşiduyuru 22
112 ekşi 22
113 subetha 23
114 sub 23

umarım doğru anlatabilmişimdir elimdeki case'i :D

 

Bilgisayarda olmadığım için deneyemiyorum ama select dedikten sonra şu tablolardan şunları al demişsiniz ama orada site_id yok, böyle olunca site_id bazında birleştirir ama site_id sütunu olmaz elinizde.
Not: Sql acemisiyim.

pike

öyle olunca site_id'yi de group by'a almak lazım ama onu istemiyorum :)

fakyoras

2 group by yapmadan mümkün değil, ısrarcıyım diyorsan cross join ile bir şeyler çıkarılabilir belki.

veritabanın oracle'sa RANK fonksiyonları var, onlara da bir bakabilirsin.

celeron 300a
1

mobil görünümden çık