[]
sql where şartındaki bir koşulu sallamıyor
aşağıdaki sorguda al_type != 2 yazmama rağmen 2 olanlar da geliyor sebebini anlayamadım fikri olan var mı?
select * from oauth_members om
join members m on m.id = om.id
left join auth__status as2 on om.id = as2.al_uid
where om.country_code in (98, 850) or om.email like '%.ir' or om.email like '%.kp'
or m.nationality_id in (101, 112) and as2.al_type != 2 and om.specs != 4096
order by ad desc, om.id
select * from oauth_members om
join members m on m.id = om.id
left join auth__status as2 on om.id = as2.al_uid
where om.country_code in (98, 850) or om.email like '%.ir' or om.email like '%.kp'
or m.nationality_id in (101, 112) and as2.al_type != 2 and om.specs != 4096
order by ad desc, om.id
Or larin hangisi birbirine alternatifse onlari bir parantezde vs toplamayi deneyebilirsin. Orlardan birini yakaladigi icin endlere girmiyor gibi geldi bana
- zimbirik (08.04.22 15:47:28)
aslında onları denedim daha önce or kısımlarını paranteze aldım ancak bu sefer de left join inner join gibi çalışıyor niyeyse, 318 satır veri gelmesi gerekirken 9 satır geliyor. sorgudan al_type != 2 kısmını çıkarınca sorunsuz çalışıyor aslında ama 2 satırın daha elenmesi için bu şartın da eklenmesi gerek olmayınca 320 satır geliyor
- semaforo de medianoche (08.04.22 16:03:34)
bunlardan birisi
(om.country_code in (98, 850) or om.email like '%.ir' or om.email like '%.kp'
or m.nationality_id in (101, 112))
ve AND
(a ile b )
işlemi doğru olmak zorunda
veri tabanı = ilk okuldaki küme kavramı
parantezler işlem önceliklerini değil, kümeleri temsil ediyor. her hangi bir where durumunu küme işaretleri ile birlikte yazabilirsiniz.
(om.country_code in (98, 850) or om.email like '%.ir' or om.email like '%.kp'
or m.nationality_id in (101, 112))
ve AND
(a ile b )
işlemi doğru olmak zorunda
veri tabanı = ilk okuldaki küme kavramı
parantezler işlem önceliklerini değil, kümeleri temsil ediyor. her hangi bir where durumunu küme işaretleri ile birlikte yazabilirsiniz.
- selam (08.04.22 16:10:03 ~ 16:15:25)
as2.al_type != 2
bu ifadeyi left join'in oraya yazınca düzelmesi gerek aşağıdaki gibi:
left join auth__status as2 on om.id = as2.al_uid and as2.al_type != 2
bu ifadeyi left join'in oraya yazınca düzelmesi gerek aşağıdaki gibi:
left join auth__status as2 on om.id = as2.al_uid and as2.al_type != 2
- surprise (08.04.22 16:59:14)
OR ve AND aynı anda kullanılıyorsa parantez ile onları birbirinden ayırmalısınız
Where (X=Y OR X = Z) AND A=B;
Where (X=Y OR X = Z) AND A=B;
- solo (09.04.22 12:50:32)
1