เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

Re: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย thatsawan » 19/07/2014 9:37 pm

สุดท้ายก็ถึงบางอ้อ ....!

SELECT r.*, e.electric_name, us.username, us.user_colour, t.name_type as ntype FROM (phpbb_mod_record_user r)
LEFT JOIN phpbb_users us ON (us.user_id = r.user_id )
LEFT JOIN phpbb_mod_reccord_detail d ON (d.record_id = r.record_id)
LEFT JOIN phpbb_mod_electric e ON (e.electric_id = d.electric_id)
LEFT JOIN phpbb_mod_type_rate t ON (t.type_id = r.type_id)
WHERE (us.username LIKE '%TV%' OR e.electric_name LIKE '%TV%' ) AND r.type_id LIKE '%1%'GROUP BY record_id DESC

หนูเชื่อม ผิด...!
e.electric_id = d.record_id ทำ
ทำให้ ข้อมูลที่ join ออกมาได้ electric_name ไม่ตรงกับ electric_id ที่เก็บใน phpbb_mod_record_user (ลองเเบบไม่ "WHERE") มันก้เลยค้นหาไม่ได้ เจอะ...! :-D :-D

Re: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย mindphp » 19/07/2014 6:36 pm

ความรู้เพิ่มเติมเกี่ยวกับ การ Join แบบ LEFT JOIN ใน MySQL
https://www.mindphp.com/forums/viewtopic ... 326#p48326

Re: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย mindphp » 19/07/2014 2:20 pm

r.type_id LIKE '%1%'
คืออะไร ใช้เป็นตัวเชื่อมตาราง หรือ ใช้เป็นเงื่อนไข
ถ้าเป็นตัวเลข ควรใช้ = แทน LIKE

Re: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย thatsawan » 19/07/2014 12:05 pm

เปลี่ยนเเล้วค่ะ ผลเป็นเหมือนเดิม .. :cry: :cry:

Re: เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย mindphp » 19/07/2014 11:10 am

OR, AND แทนเครื่องหมาย

เขียนคำสั่ง SQL JOIN TABLE เพื่อค้นหา เเต่บางคำ ค้นหาไม่ได้

โดย thatsawan » 18/07/2014 10:14 pm

พิมพ์ a ตัวเดียว ค้นหาคำที่มี "a" ได้ => admin ตาราง phpbb_users
พิมพ์ หม้อ ตัวเดียว ค้นหาคำที่มี "หม้อ" ได้ => หม้อหุงข้าว ความจุ 1.8 ลิตร ตาราง phpbb_mod_electric

SELECT r.*, e.electric_name, us.username, us.user_colour, t.name_type as ntype FROM (phpbb_mod_record_user r)
LEFT JOIN phpbb_users us ON (us.user_id = r.user_id )
LEFT JOIN phpbb_mod_reccord_detail d ON (d.record_id = r.record_id)
LEFT JOIN phpbb_mod_electric e ON (e.electric_id = d.record_id)
LEFT JOIN phpbb_mod_type_rate t ON (t.type_id = r.type_id)
WHERE (us.username LIKE '%a%' || e.electric_name LIKE '%a%' ) && r.type_id LIKE '%1%' GROUP BY record_id

เเต่พอเปลี่ยน
พิมพ์ TV => ....... ไม่เเสดงผล
คำสั่ง SQL เดียวกันเลย ตารางphpbb_mod_electric


WHERE (us.username LIKE '%TV%' || e.electric_name LIKE '%TV%' ) && r.type_id LIKE '%1%' GROUP BY record_id


เเละพอลองค้นแบบตารางเดียว
SELECT * FROM `phpbb_mod_electric` WHERE `electric_name` LIKE '%TV%'
ก็สามารถค้นได้
แนบไฟล์
1.png
1.png (4.94 KiB) Viewed 4500 times

ข้างบน