ใช้คำสั่ง inner join ในการเลือกข้อมูลในฐานข้อมูลออกมาไม่ตรงกับที

รบกวนช่วยดูโค้ดให้หน่อยค่ะ มีตารางในฐานข้อมูลอยู่ 3 ตารางค่ะ
ตาราง detailorder มีฟิวล์

- IdOrder
- BusinessMemberId
- total_order
- IdOrderStatus
- DateOrder


ตาราง orderlist มีฟิวล์

- ListNo
- IdOrder
- ProductsId
- NumberOrder


ตาราง productsotop มีฟิวล์

- ProductsId
- IdMember

โค้ดนะค่ะ

"SELECT * FROM detailorder INNER JOIN orderlist ON(detailorder.IdOrder= orderlist.IdOrder) INNER JOIN productsotop ON(orderlist.ProductsId=productsotop.ProductsId) WHERE productsotop.IdMember = $IdMember ";

อยากจะให้ IdOrder มันขึ้นเฉพาะของ IdMember ที่เลือกเท่านั้นค่ะ แต่โค้ดนี้มันออก IdOrder หลายอันค่ะ ช่วยดูให้หน่อยค่ะ
07 ส.ค. 2553 1 1,941

SELECT * FROM detailorder
********
WHERE productsotop.IdMember = $IdMember

ดูมันขัดๆ ชอบกล

คำสั่ง SELECT และ WHERE ควรเป็น ฐานข้อมูลเดียวกัน ลองกลับไปดูใหม่


ถ้า WHERE ต้องเป็น IdMember ดังนั้นควร SELECT productsotop มากกว่า จากนั้นจึงค่อย JOIN ตารางที่เหลือ 

ส่วนหากต้องการให้ IdOrder ออกแค่อันเดียว ลองใช้คำสั่ง GROUP BY IdOrder ดูครับ

ว่าแต่...จัดตารางได้ งง  จัง..
#1
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^