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
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