Ben sadece bu anladım. Muhtemelen kötü bir uygulama ama bu durumda benim için çalıştı.
Ben takma ad veya istediğiniz bir tablo öneki her sütun adını yazmak değil tembel insanlardan biriyim.
Sen select deyiminde table_name.*
kullanarak belirli bir tablodan tüm sütunları seçebilirsiniz.
Eğer sütun adlarını çoğaltılamaz zaman, mysql son birinci üzerine yazılır. Yine o sütun adı karşılaştığında ilk çoğaltılamaz sütun adından verilerin üzerine yazılır. Yani son galibiyet geliyor yinelenen sütun adı.
3 tablolar, çoğaltılmış bir sütun adı, select deyiminde tablo sırasını içeren her katılmadan ediyorsam ben yinelenen sütun için alıyorum hangi verileri belirleyecek.
Örnek:
SELECT table1.* , table2.* , table3.* FROM table1 LEFT JOIN table2 ON table1.dup = table2.dup LEFT JOIN table3 ON table2.dup = table3.dup;
Yukarıdaki örnekte, dup
I elde değerinin table3
arasında olacaktır.
Ne dup
adlı değeri olmak istiyorsanız table1
?
Sonra bunu yapmak gerekiyor:
SELECT table3.* , table2.* , table1.* FROM table1 LEFT JOIN table2 ON table1.dup = table2.dup LEFT JOIN table3 ON table2.dup = table3.dup;
Şimdi, table1
son geliyor, bu yüzden değeri dup
tablo1 değer olacaktır.
Ben her hilkat garibesi sütun yazmak ve hala tüm sütunları ile çalışmak için almak zorunda kalmadan dup
aranan değer var. Yay!
Ben değeri dup
3 tablolarda aynı olması gerektiğini biliyorum, ama ne olur table3
için eşleşen bir değer yok dup
? Sonra dup
ilk örnekte boş olacak ve bu bir serseri olacaktır.