ขอสอบถามเรื่องการดึงข้อมูลจาก 2 ตาราง มาโชวที่เดียว โดยการ ค้นหาข้อมูล แต่ข้อมูลที่ไม่ได้ค้นหาขึ้นมาด้วย
ผมลองทำแล้ว ไม่รู้ว่าต้อง SELECT แบบไหนถึงจะออกมาแบบนี้
นี่โค๊ดครับ
Code (SQL)
SELECT menu_group.id,menu_group.img,menu_group.img_size, menu_group.name, menu_group.link, view_menu.user, view_menu.time
FROM menu_group
LEFT JOIN view_menu ON menu_group.id = view_menu.menu ORDER BY view_menu.time DESC
หากเราไม่ where จะมีข้อมูลของ user อื่นๆ เข้ามาด้วยครับ ผมอยากได้ของ user คนเดียวนะครับ
นี่โค๊ดครับ
Code (SQL)
SELECT menu_group.id,menu_group.img,menu_group.img_size, menu_group.name, menu_group.link, view_menu.user, view_menu.time
FROM menu_group
LEFT JOIN view_menu ON menu_group.id = view_menu.menu WHERE view_menu.user LIKE '::2' ORDER BY view_menu.time DESC
นี้สิ่งที่ได้ครับ
ขอบคุณครับTag : PHP, MySQL, XAMPP
Date :
2018-10-04 15:38:10
By :
canasso
View :
1267
Reply :
3
เพิ่ม and view_menu.user !='null' ครับ
ต้องการ Select ข้อมูล เฉพาะ User ::2 ผมเข้าใจถูกต้องหรือปล่าวครับ ข้อดู Table view_menu เพิ่มเติมครับ อยาก ทราบค่า ตรง
ON menu_group.id = view_menu.menu
ประวัติการแก้ไข 2018-10-04 16:22:39
Date :
2018-10-04 16:14:03
By :
manatimnam
ประมาณนี้ครับ
ตอนนี้ลองเพิ่ม โค๊ดที่พี่บอกแล้ว มันยังไม่โชวครับ จะเป็นโชวแค่ข้อมูลอันเดียว ผมอยากได้ข้อมูลที่ user คนนี้ไม่ได้กด แต่ประกฏขึ้นมาให้ดูด้วยนะครับ ยังไงขอบคุณมากนะครับ
Date :
2018-10-04 18:13:49
By :
canasso
การเลือกข้อมูลลักษณะนี้ต้องชัดเจนเรื่อง where ครับ ว่าจะกรองจากอะไร
กรณีนี้คืออยากให้แสดง user เดียว คือ ::2 แต่ในฐานข้อมูล มีข้อมูลของ ::2 อยู่ 3 record
ซึ่งเมื่อ left join แล้วแสดงออกมา 2 record นั่นแสดงว่า
1. เงื่อนไขในการค้นหายังไม่เฉพาะเจาะจง หรือ
2. หลักการหาที่ จขกท ยังไม่ชัดเจน หรือ
3. ข้อมูลในฐานข้อมูลไม่สามารถแสดงเพียง 1 รายการได้เนื่องจากมีข้อมูลตรงตามเงื่อนไขหลายรายการ
ซึ่งตรงนี้สามารถบังคับให้แสดง 1 รายได้โดยใช้คำสั่ง limit 0,1 ได้ ซึ่งหมายความว่า จะเฉพาะเจาะจงที่ record แรกที่เจาะเสมอ
ซึ่งวิธีการนี้จะแสดงผลออกมาตามความต้องการของ จขกท คือแสดง 1 record
แต่ข้อมูลที่แสดงอาจไม่ถูกต้องตามวัตถุประสงค์หลักของระบบก็ได้ คือ ข้อมูลที่ต้องการแสดงอยู่ลำดับที่ 2 แต่ limit 0,1 จะเลือกลำดับที่ 1 ขึ้นมาแสดง
ซึ่งหากกลับไปแก้ limit 1,1 เพื่อให้เลือกลำดับที่ 2 ขึ้นมา ก็จะได้ข้อมูลที่ต้องการในการทำสอบ
แต่เมื่อใช้งานจริงแล้ว จะไม่สามารถกำหนดตายตัวได้ว่าข้อมูลที่ต้องการจะอยู่ที่ลำดับใดครับ
ดังนั้น จขกท จะต้องชัดเจนเรื่องเงื่อนไขการค้นหาครับ หากชัดเจนแล้วข้อมูลในระบบตรงกับเงื่อนไขมากกว่า 1 ก้อต้องยอมรับมันครับ
หรือบริหารจัดการตั้งแต่ขั้นตอนการนำเข้าระบบครับ
สอบถามรายละเอียดเพิ่มเติมได้ครับ
Date :
2018-10-05 21:56:09
By :
djunghoo
Load balance : Server 04