SQL เงื่อนไข AND หลายแถวทำได้มั้ยค่ะ

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19444
Joined: 31/03/2014 10:02 am
Contact:

SQL เงื่อนไข AND หลายแถวทำได้มั้ยค่ะ

Post by thatsawan » 06/09/2016 11:58 am

ต้องการ Topic_id ที่มี tag_id = 442 เเละ tag_id = 440 จะทำยังไงได้บ้างค่ะ
2016-09-06_11-48-40.png
2016-09-06_11-48-40.png (83.76 KiB) Viewed 1364 times

Code: Select all

SELECT * FROM `phpbb_m_topictags` WHERE `tag_id` = 442 AND `tag_id` = 440
ไม่ได้ผลลัพท์ที่ต้องการ

Code: Select all

SELECT *  FROM `phpbb_m_topictags` WHERE `tag_id` IN (440,442) ORDER BY `tag_id` ASC
BETWEEN ก็ลองเเล้ว ไม่ได้เหมือนกัน

thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19444
Joined: 31/03/2014 10:02 am
Contact:

Re: SQL เงื่อนไข AND หลายแถวทำได้มั้ยค่ะ

Post by thatsawan » 06/09/2016 2:24 pm

ได้เเล้วค่ะ

Code: Select all

 $sql_array = array(
                'SELECT' => 'tt.topic_id',
                'FROM' => array(
                    $this->m_topictags => 'tt'
                ),
                'WHERE' => 'tt.tag_id = 440',
            );
            $where_select_topic = $this->db->sql_build_query('SELECT', $sql_array);


            $sql_array = array(
                'SELECT' => 'tt.topic_id',
                'FROM' => array(
                    $this->m_topictags => 'tt'
                ),
                'WHERE' => 'tt.tag_id = 442',
            );
            $where_select_topic_1 = $this->db->sql_build_query('SELECT', $sql_array);

            
            if (!empty($tag_id_search)) {
                $sql_array = array(
                    'SELECT' => 'tt.topic_id',
                    'FROM' => array(
                        $this->m_topictags => 'tt'
                    ),
                    'WHERE' => array(),
                    'LEFT_JOIN' => array(),
                    'ORDER_BY' => array(),
                    'GROUP_BY' => 'tt.topic_id',
                );

                $sql_array['WHERE'] = 'tt.topic_id IN (' . $where_select_topic . ')'; 
                $sql_array['WHERE'] .= ' AND tt.topic_id IN (' . $where_select_topic_1 . ')'; 
                $sql = $this->db->sql_build_query('SELECT', $sql_array);

                $query = $this->db->sql_query($sql);
                while ($row = $this->db->sql_fetchrow($query)) {
                    $topic_id_search[] = $row['topic_id'];
                }
            } 

Post Reply

Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 7 guests