İki tablom var. Onları en sağdaki tabloda her kayıt için sağdaki tabloda sadece bir kaydın döndürüleceği şekilde birleştirmek istiyorum. Aşağıda bir örnek ekledim. Gerçek veriler yaklaşık 4M satır olduğu için alt sorgulardan ve geçici tablolardan kaçınmak istiyorum. Ayrıca, en sağdaki tabloda hangi kaydın eşleştirildiği, bir veya hiç eşleşmediği sürece umrumda değil. Teşekkürler!MySQL JOIN sorgusu yardımı: En soldaki tablodaki her satır için en sağdaki tablodan yalnızca bir satır döndürme
tablo kullanıcıları:
-------------
| id | name |
-------------
| 1 | mike |
| 2 | john |
| 3 | bill |
-------------
tablo işlemleri:
---------------
| uid | spent |
---------------
| 1 | 5.00 |
| 1 | 5.00 |
| 2 | 5.00 |
| 3 | 5.00 |
| 3 | 10.00 |
---------------
beklenen çıkışı:
---------------------
| id | name | spent |
---------------------
| 1 | mike | 5.00 |
| 2 | john | 5.00 |
| 3 | bill | 5.00 |
---------------------
Neden herkes user.id (birincil anahtar) ve user.name ile gruplanıyor? Birincil anahtarla gruplandırdıktan sonra gerçekten başka bir şeye ihtiyacınız olmaz. Bir şeyi mi özledim yoksa hepimiz sadece @OMG Ponies'i mi kopyalarız? – TheJacobTaylor
@ TheJacobTaylor: Standart SQL, GROUP BY'de toplanmış olmayan sütunları dahil etmenizi gerektirir. ANSI standardı gereksiz alt gruplar varsa tüm sütunları tanımlamayı desteklemez - MySQL bunu destekler, ancak diğer birçok veritabanında çalışmaz. –
@TheJacobTaylor: MySQL, tüm gruplama sütunlarını gerektirmez; Hemen hemen her DBMS yapar ve SQL standardını yapar. –