(6)
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'
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
0
semaforo de medianoche (
08.04.22)
Or larin hangisi birbirine alternatifse onlari bir parantezde vs toplamayi deneyebilirsin. Orlardan birini yakaladigi icin endlere girmiyor gibi geldi bana
0
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
0
🌸
semaforo de medianoche
(
08.04.22)
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.
0
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
0
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;
0