ต้องการดึงข้อมูลที่ไม่ซ้ำกัน จาก 2 ตารางที่ไม่ได้เชื่อมต่อกัน
select ทีละ ตาราง แล้วนำมา union กัน
เลือก a ที่ไม่มี ใน b
union all
เลือก b ที่ไม่มีใน a
Date :
2017-06-08 09:34:16
By :
Chaidhanan
ขอบคุณมากครับ สมมุติว่าตาราง A กับตาราง B มีข้อมูลที่ซ้ำกันคือ 'ccc' ในฟิลด์ตาราง A ลักษณะการเก็บข้อมูลตาราง B เป็นแบบ aaa,bbb,ccc มันทำให้ ฟิลเตอร์ข้อมูลไม่ได้อ่าครับ มีวิธีไหมครับ หรือต้องเขียนอย่างอื่นแทน
Date :
2017-06-08 10:29:22
By :
Jamemonth
Code (SQL)
select a.*
from a,b
where concat(',', b.key_list,',') like concat('%,',a.key,',%')
เพิ่มเติมคำตอบ จากคำถาม ใน pm
concat() เป็น function รวม string เข้าด้วยกัน
concat(',', b.key_list,',') จะได้ value สำหรับนำไปเปรียบเทียบ ',aaa,bbb,ccc,' เป็นการเพิ่ม คอมม่าหัวท้ายประโยค
เพื่อนำไปค้นหาได้ตั้งแต่ element ต้น จน element สุดท้าย โดยเพิ่ม คอมม่า ห้วยท้ายคำค้น
คือ concat('%,',a.key,',%') จะได้ value สำหรับค้นหาคือ '%,ccc,%'
สรุปคือ
where ',aaa,bbb,ccc,' like '%,ccc,%'
ถ้าเราไม่เพิ่ม คอมม่า หัวท้าย เราก็จะหาอะไรมาจำกัด แยกคำออกจากกันไม่ได้
ปล. ตอบใน pm รู้แค่คนเดียว ตอบตรงนี้แล้วกัน บางคนที่ไม่รู้จะได้รู้ด้วย
ประวัติการแก้ไข 2017-06-08 17:27:32
Date :
2017-06-08 10:44:20
By :
Chaidhanan
Load balance : Server 04