PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ถามเรื่อง? การเรียงลำดับข้อมูล (SQL)

ถามเรื่อง? การเรียงลำดับข้อมูล (SQL)

ผมอยากทราบ คำสั่งในการเรียงลำดับน่ะครับ =>ผมต้องการเรียงลำดับจากวันที่
ตัวอย่างโค้ด

$sql = "SELECT tr.*,p.*, c.*, bg.*, lm.* ,y.*
            FROM training tr
            LEFT JOIN persons p ON tr.person_id = p.person_id
            LEFT JOIN tbl_learn_catagory c ON tr.cat_learn_id = c.cat_learn_id
            LEFT JOIN tbl_budget bg ON bg.budget_id = tr.budget_id
            LEFT JOIN tbl_learn_money lm ON lm.money_id = tr.money_id
            LEFT JOIN tbl_year y ON y.year_id = tr.year_id
            WHERE (tr.training_date_start >= '".$_GET["date_start"]."' ) AND (tr.training_date_start <= '".$_GET["date_end"]."')";
--------------------ผลลัพธ์ บางส่วน มันไม่เรียงลำดับ ------------------------
2014-10-02 - 2014-10-21
2014-10-26 - 2014-10-28
2014-10-05 - 2014-10-08



โดย:  Hasanlebaesa02 IP: 49.230.223.xxx วันที่: 30-10-2014 เวลา: 21:57:28

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 4
ไม่เคยได้ใช้ LEFT JOIN เยอะแบบนี้มาก่อน

ลองดูของเว็บนี้ดู เผื่อช่วยได้

http://stackoverflow.com/questions/14260860/multiple-left-joins-on-multiple-tables-in-one-query

โดย:  Ninenik IP: 124.122.109.xxx วันที่: 31-10-2014
 ความคิดเห็นที่ 3

ผมลองใช้ Between ครับ ก็ไม่ได้ครับ

$sql = "SELECT tr.*,p.*, c.*, bg.*, lm.* ,y.*
            FROM training tr
            LEFT JOIN persons p ON tr.person_id = p.person_id
            LEFT JOIN tbl_learn_catagory c ON tr.cat_learn_id = c.cat_learn_id
            LEFT JOIN tbl_budget bg ON bg.budget_id = tr.budget_id
            LEFT JOIN tbl_learn_money lm ON lm.money_id = tr.money_id
            LEFT JOIN tbl_year y ON y.year_id = tr.year_id
            WHERE (tr.training_date_start between '".$_GET["date_start"]."' ) AND '".$_GET["date_end"]."')
ORDER BY tr.training_date_start ASC";



โดย:  Hasanlebaesa02 IP: 49.230.223.xxx วันที่: 30-10-2014 เวลา: 23:36:46
 ความคิดเห็นที่ 2
ทำไมใช้คำสั่งนี้ ORDER BY tr.training_date_start ASC  ปรากฏว่า error

โดย:  Hasanlebaesa02 IP: 49.230.223.xxx วันที่: 30-10-2014 เวลา: 22:17:31
 ความคิดเห็นที่ 1
ปกติเรียงก็ใช้ ORDER BY xxxx DESC หรือ ASC ถ้าเรียงหลายฟิลด์ ก็ ORDER BY xxxx1 DESC,xxxx2 DESC

คำสั่ง SQL ORDER BY 
http://www.ninenik.com/content.php?arti_id=107 via @ninenik

แต่ถ้ามีการใช้ LEFT JOIN ก็อาจจะเรียงไม่ได้ถูกต้องสมบูรณ์ อันนีก็ขึ้นกับโครงสร้างของฐานข้อมูลด้วย
คงต้องปรับประยุกต์เอง ตามความเหมาะสม


โดย:  Ninenik IP: 1.46.82.xxx วันที่: 30-10-2014