select * ,type_name FROM ( document a LEFT JOIN doctype b ON a.doc_type = b.type_id LEFT JOIN document c ON a.doc_id = c.doc_ref) where a. doc_about like "%ทดสอบ3%"
นี้โคดที่ใส่ไปนะ ครับ
อธิบายอีกนิด คือ ประมาณว่า เรามีไฟล์ข้อมูล 4 ไฟล์มาเก็บ a,b,c,d docid = 1,2,3,4
a ref ไป ยัง d doc_ref = 4 เมื่อค้นหาไฟล์ a ผล แสดงแค่ ข้อมูล a
b ref ไป ยัง d doc_ref = 4 เมื่อค้นหาไฟล์ b ผล แสดงแค่ ข้อมูล b
c ref ไป ยัง a doc_ref = 1 เมื่อค้นหาไฟล์c ผล แสดงแค่ ข้อมูล c,a
แล้ว d ไม่ได้อ้่างอิงไปใหน doc_ref = 0 เมื่อค้นหาไฟล์ d ผล แสดงแค่ ข้อมูล a,b
select a.field1, a.field2, a.field3, b.field1, b.field2, b.field3
form table a
left join table b on a.field1 = b.field1
left join tbale c on a.field1= c.field1
where a.field1=??????
จากคำตอบที่ 1 ครับ คือ มันยังไม่ถูกครับ เพราะมีการใช้เทียบกัน 2 ครั้ง where a.doc_id = a.doc_ref and a. doc_about like "%ทดสอบ3%" ผลลัพท์ จึงไม่ออกอะไรเลย ครับ
สำหรับ พี่คนที่ 2 เริ่มจะใช่ครับ
คือผมลองใส่โคด
Code
SELECT * ,type_name FROM (SELECT * FROM document a LEFT JOIN doctype b on a.doc_type = b.type_id ) as tem where tem.doc_about like "%ทดสอบ2%"