Page 1 of 1

ทำไม select จาก id แต่ข้อมูลออกมาหลายชุด

Posted: 02/11/2019 12:48 pm
by bankjittapol
Screenshot_2019-11-02 โปรแกรมตรวจสอบหมายเลขพัสดุ.png
Screenshot_2019-11-02 โปรแกรมตรวจสอบหมายเลขพัสดุ.png (51.55 KiB) Viewed 408 times
จากภาพ คือ ผมทำการ select ข้อมูลจากฐานข้อมูลมา โดยอ้างอิงจาก id ของ table tools_tracking ซึ่งมันควรจะออกมา เพียงข้อมูล 1 ชุด ของ id =4 เท่านั้น แต่กับออกมาทุกชุดข้อมูลที่มี เลยอยากทราบว่าต้อง เพิ่ม แก้ไข ปรับปรุงตรงไหนบ้างครับ

Code: Select all

SELECT * FROM tools_tracking as tk
LEFT JOIN tools_tracking_test as tt ON tk.tracking_number = tt.test_barcode
LEFT JOIN tools_tracking_status as ts ON tt.test_status = ts.status_code
WHERE  tk.id = 4
ผลลัพธ์ที่ได้
Screenshot.png
ฐานข้อมูล
1.png
1.png (80.49 KiB) Viewed 408 times
3.png

ผลลัพธ์ที่ควรได้
Screenshot_2019-11-02 โปรแกรมตรวจสอบหมายเลขพัสดุ.png
Screenshot_2019-11-02 โปรแกรมตรวจสอบหมายเลขพัสดุ.png (41.43 KiB) Viewed 408 times

Re: ทำไม select จาก id แต่ข้อมูลออกมาหลายชุด

Posted: 02/11/2019 12:53 pm
by mindphp
ตาราง tools_tracking_test , tools_tracking_status ออกแบบไว้ ยังไว ไว้เก็บค่าอะไรบ้าง

Re: ทำไม select จาก id แต่ข้อมูลออกมาหลายชุด

Posted: 02/11/2019 1:45 pm
by bankjittapol
mindphp wrote:ตาราง tools_tracking_test , tools_tracking_status ออกแบบไว้ ยังไว ไว้เก็บค่าอะไรบ้าง
tools_tracking_status เป็นสถานะ ของการจัดส่งพัสดุครับ
dbstatus.png
dbstatus.png (116.9 KiB) Viewed 401 times
tools_tracking_test เก็บ ชุดข้อมูล การจัดส่งจากต้นทาง ไปถึงปลายทาง ทั้งหมดเลยครับ
dbtest.png
dbtest.png (133.22 KiB) Viewed 401 times
ในกรอบคือ 1 ชุดข้อมูล ที่ทำการ insert 1 ครั้งครับ

Re: ทำไม select จาก id แต่ข้อมูลออกมาหลายชุด

Posted: 02/11/2019 1:55 pm
by mindphp
tools_tracking
==> tools_tracking_test ชือในการตั้งไม่สือ
แก้เป็น tools_tracking_logs และ เก็บ id ของ ตามราง tools_tracking เป็น FK ของตารางนี้
และการ Join ในการ query ข้อมูลมา แสดงใช้ แค่สองตาราง คือ tools_tracking และ tools_tracking_logs
โดยเงื่อนไขในการ query การ Join
ลองดูตัวอย่าง
viewtopic.php?f=74&t=18661&p=38899#p38899