จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 28029
Joined: 31/03/2014 10:02 am
Contact:

จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

Post by thatsawan »

หนูจะทำค้นหา ...เพิ่มขึ้นมาจากเดิมที่ค้นหาจาก....

Code: Select all

$sql = 'SELECT user_id
               FROM '.USERS_TABLE.'
               WHERE username = "'.$db->sql_escape($key).'"'; 
1. จะให้ค้นหามากกว่า 1 ตาราง ทำยังไงค่ะ
เเล้วตรงที่จะเเสดงผล

Code: Select all

 $sql_ary = array(
                'SELECT'    => 'r.*,
                                us.username, us.user_colour,
                                t.name_type as ntype',
                'FROM'      => array(
                    MOD_RECORD_USER         => 'r',
                ),
                'LEFT_JOIN' => array(
                    array(
                        'FROM'  => array(USERS_TABLE => 'us'),
                        'ON'    => 'us.user_id = '.$user_row['user_id'].' ',
                    ),
                    array(
                        'FROM'  => array(MOD_TYPE => 't'),
                        'ON'    => 't.type_id = r.type_id'
                    ),
                ),
                'WHERE'     =>  " r.user_id LIKE '%".$user_row['user_id']."%'
                                && r.type_id LIKE '%".$typeg."%'",
            ); 
2. ถ้าค้นหาจากตารางอื่นจะต้อง JOIN เข้าไปอีกมั้ยค่ะ
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 26673
Joined: 22/09/2008 6:18 pm
Contact:

Re: จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

Post by mindphp »

ถ้าจะค้นจากตารางอื่น ต้อง Join เพิ่มตารางเข้ามาก่อนครับ
แต่ต้องดูโครงสร้างตารางที่จะเอามา Join เข้าไปด้วย นะครับ

ดูเนื้อหาการ join ตารางเพิ่มเติมได้ ที่
https://www.mindphp.com/%E0%B8%9A%E0%B8% ... -join.html
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 28029
Joined: 31/03/2014 10:02 am
Contact:

Re: จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

Post by thatsawan »

จากตัวอย่างด้านบน .! ตารางจะเชื่อมกันด้วย user_id
-> พอเราค้นหาก็จะเอา user_name --> เเล้วก้อเอา user_id มาหาจากตารางที่เอามา LEFT_JOIN = เเสดงผลออกมา
->ถ้าใส่ LEFT_JOIN เพิ่มเข้าไปอีกตาราง ก็เท่ากับว่า เอา user_id มาหา.....
___________________
เเล้วถ้าหนูจะให้มัน
1. ค้นหาจาก.. อะไรก้ได้ที่ไม่ใช่เเละมากกว่า user_id เช่น จะให้หาจาก electric_name (ในตาราง electric เเละตารางนี้ก้อมี user_id)
2. เเล้วพอค้นหา ... ผลที่จะเเสดง List electric_name ถ้ามี list ขึ้นมาก้แสดงว่าจะมี user_id มามากกว่า 1 ซึ่งจะต่างกับตัวอย่างตรงที่ในตัวอย่างค้นหา user_id มาเเล้วเเสดงข้อมูลของ list user นั้นๆ

หนูไม่รู้ว่า โครงสร้างตารางจะทำให้มันทำจข้อ 1,2 ได้มั้ย เเล้วถ้าทำได้จะต้องเขียนเเบบไหน ชุดเดียวกันเพิ่มเข้าไปในโค้ดเลยป่าวค่ะ
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 26673
Joined: 22/09/2008 6:18 pm
Contact:

Re: จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

Post by mindphp »

ลอง SELECT r.*,t*,us.* จะได้เห็นทุก fields ที่เราสามารถเอามาเป็นเงื่อนไขในการค้นได้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
jojosung9
PHP Newbie
PHP Newbie
Posts: 1
Joined: 17/07/2014 3:51 pm

Re: จะทำยังไงให้ SELECT ได้มากกว่า 1 ตาราง

Post by jojosung9 »

ขอบคุณมากครับ กำลังหาพอดีเลย
ลายเซ็นต์สำหรับ สมาชิกที่ตอบกระทู้ช่วยเหลือสมาชิกท่านอื่นๆ เกิน 20 กระทู้เท่านั้น
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: Bing [Bot] and 14 guests