[]
sql sorusu
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.
Not: Sql acemisiyim.
- pike (31.08.17 10:33:51 ~ 10:35:14)
öyle olunca site_id'yi de group by'a almak lazım ama onu istemiyorum :)
- fakyoras (31.08.17 10:58:36)
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.
veritabanın oracle'sa RANK fonksiyonları var, onlara da bir bakabilirsin.
- celeron 300a (31.08.17 12:03:52)
1