Saya punya dua meja. Kedua tabel berisi ID yang dapat digunakan untuk menggabungkan keduanya. Namun, tabel 2 dapat memiliki more than one row for the same ID
. Tabel 1 akan selalu memiliki satu baris.
Misalnya, table 1
berisi 60.000 baris. Ketika saya melakukan gabungan dalam kiri dengan table2
ia mengembalikan ~171.000 baris.
Apa yang ingin saya capai adalah mengembalikan baris pertama dari tabel 2 sehingga ketika saya menggabungkannya saya tidak membuat catatan duplikat.
Saya tidak yakin apakah ini pendekatan yang benar tetapi inilah yang saya coba:
SELECT I.*, a.Name from table 1 I
INNER JOIN (SELECT MIN (a.ID), a.NAME FROM table 2 group by a.ID) as a
on I.ID = a.ID
Saya mendapatkan kesalahan berikut:
Sintaks yang salah di dekat 'i'.
Adakah saran tentang bagaimana saya dapat memperbaikinya? Atau mendapatkan hasilnya dengan cara yang berbeda?
MIN(a.ID)
di tabel turunan Anda. Secara teknis tidak ada kolomID
di kumpulan hasil itu. - person Dave Johnson   schedule 16.10.2014i
dalam kode itu sama sekali. - person Aaron Bertrand   schedule 16.10.2014