ใช้คำสั่ง 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 หลายอันค่ะ ช่วยดูให้หน่อยค่ะ
ตาราง 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 หลายอันค่ะ ช่วยดูให้หน่อยค่ะ
********
WHERE productsotop.IdMember = $IdMember
ดูมันขัดๆ ชอบกล
คำสั่ง SELECT และ WHERE ควรเป็น ฐานข้อมูลเดียวกัน ลองกลับไปดูใหม่
ถ้า WHERE ต้องเป็น IdMember ดังนั้นควร SELECT productsotop มากกว่า จากนั้นจึงค่อย JOIN ตารางที่เหลือ
ส่วนหากต้องการให้ IdOrder ออกแค่อันเดียว ลองใช้คำสั่ง GROUP BY IdOrder ดูครับ
ว่าแต่...จัดตารางได้ งง จัง..