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

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

Moderator: mindphp

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ต้องการ 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 2595 times

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

SELECT *  FROM `phpbb_m_topictags` WHERE `tag_id` IN (440,442) ORDER BY `tag_id` ASC
BETWEEN ก็ลองเเล้ว ไม่ได้เหมือนกัน
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ได้เเล้วค่ะ

โค้ด: เลือกทั้งหมด

 $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'];
                }
            } 
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 30