INNER JOIN tablorenk ON tablorenk. RenkID = ( CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END ) surada ne yapmaya calistin tam olarak? Hocam 3 adet meyve rengi var bu renkler türe gre değişiyor o anki tür hangisi ise o rengi alıyor. CASE WHEN Kullanıyorum işte. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Merhabalar hocalarım çok saçma bir sorun ile karşı karşıyayım. Sorun şu ki; Şyle bir Query mevcut. SELECT FROM tablosatislar INNER JOIN tablomeyveler ON tablomoyveler. MeyveID = tablosatislar. MeyveID INNER JOIN tablotur ON tablotur. TurID = tablomeyveler. TurID INNER JOIN tablorenk ON tablorenk. RenkID = ( CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END ) Bu Query bana bazen sonuç verirken bazen vermiyor. Aynı query çalıştırıyorum halbuki. 10 sorgu arasından 2-3 defa verileri veriyor bazen vermiyor. Sorguda sıkıntı yok. Fakat sorguyu şu hale getirince. SELECT FROM tablosatislar INNER JOIN tablomeyveler ON tablomoyveler. MeyveID = tablosatislar. MeyveID INNER JOIN tablotur ON tablotur. TurID = tablomeyveler. TurID LEFT JOIN tablorenk ON tablorenk. RenkID = ( CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END ) Her türlü sonucu veriyor bana Arasındaki fark INNER join'i LEFT Join ile değiştirdim. Normalde INNER JOIN olması gerekiyor çünkü bire bir ilişkili tabloların birbirini karşılamaması imkansız. LEFT Olmaması gerekiyor. Fakat INNER deyince de bazen sorgu geliyor bazen gelmiyor. Muhabbeti çzemedim PDO kullanıyorum PHP de. ORM falan da yok. Salt PDO. Mysql olarak da çalıştırıyorum Query'i aynı şekilde bazen boş bazen dolu geliyor sonuçlar. Acaba diyorum Case When şartı Asenkron falan mı çalışıyor. Bu seferde LEFT deyince gelmesi saçmalık ben çzemedim bu işi. İşin ehli arkadaşlar varsa bir el atabilir mi? Şuan LEFT JOIN diyerek çzdüm işi ama data büyük Inner Yapmam gerekiyor LEFT yavaşlatıyor... INNER ve LEFT JOIN aynı sonucu veriyor bu arada. Dip Not : Query'i salladım ama query yapısı bu şekilde. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

INNER JOIN tablorenk ON tablorenk. RenkID = ( CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END ) surada ne yapmaya calistin tam olarak? Si vis pacem para bellum.

SELECT, CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END as renk FROM tablosatislar INNER JOIN tablomeyveler ON tablomoyveler. MeyveID = tablosatislar. MeyveID INNER JOIN tablotur ON tablotur. TurID = tablomeyveler. TurID şunu bi dener misin Hocam bu kod benim işimi grmüyor malesef. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

emirhan-exp tarafından 25/Ağu/18 23:50 tarihinde düzenlenmiştir

tablorenk tablosundaki kayıtlar eksik o yüzden left join kayıt dndürüyor. ftw

Yok işte hocam var. INNER JOIN deyince bazen geliyor bazen gelmiyor. Geliyor yani Gelmese hiç gelmez. INNER dediğimde gelen veriler ile LEFT dediğimde gelen veriler eşit. aynı yani. Senin dediğin olsa inner ile joinlediğimde hiç gelmez. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

SELECT, CASE tablomeyveler. TurID WHEN 1 THEN tablomeyveler. Renk1 WHEN 2 THEN tablomeyveler. Renk2 WHEN 3 THEN tablomeyveler. Renk3 ELSE 0 END as renk FROM tablosatislar INNER JOIN tablomeyveler ON tablomoyveler. MeyveID = tablosatislar. MeyveID INNER JOIN tablotur ON tablotur. TurID = tablomeyveler. TurID şunu bi dener misin Si vis pacem para bellum.