ฉันมีสองโต๊ะ ทั้งสองตารางมี ID ที่สามารถใช้เพื่อรวมเข้าด้วยกันได้ อย่างไรก็ตาม ตารางที่ 2 สามารถมี more than one row for the same ID
ได้ ตารางที่ 1 จะมีหนึ่งแถวเสมอ
ตัวอย่างเช่น table 1
มี 60,000 แถว เมื่อฉันเข้าร่วมภายในด้านซ้ายด้วย table2
มันจะคืนค่า ~171,000 แถว
สิ่งที่ฉันพยายามทำให้สำเร็จคือส่งคืนแถวแรกจากตารางที่ 2 ดังนั้นเมื่อฉันเข้าร่วม ฉันจะไม่สร้างบันทึกที่ซ้ำกัน
ฉันไม่แน่ใจว่านี่เป็นแนวทางที่ถูกต้องหรือไม่ แต่นี่คือสิ่งที่ฉันลอง:
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
ฉันได้รับข้อผิดพลาดต่อไปนี้:
ไวยากรณ์ไม่ถูกต้องใกล้ 'i'
ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีที่ฉันสามารถแก้ไขปัญหานี้? หรือได้รับผลลัพธ์ในลักษณะอื่น?
MIN(a.ID)
ในตารางที่ได้รับของคุณ ในทางเทคนิคแล้วไม่มีคอลัมน์ID
ในชุดผลลัพธ์นั้น - person Dave Johnson   schedule 16.10.2014i
ในโค้ดนั้นเลย - person Aaron Bertrand   schedule 16.10.2014