|
|
|
SQL ครับ เกี่ยวกับการใช้ LEFT JOIN ทำไมตารางทางขวามันเป็น NULL หมดเลยครับ |
|
|
|
|
|
|
|
Code (SQL)
SELECT images.userid AS userid, images.*, imground.* FROM ...
กันมัน ambiguous error
|
|
|
|
|
Date :
2020-10-11 00:42:08 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดสอบ ไปที่ละเสตป
SELECT * FROM images LEFT JOIN imground ON images.imgid=imground.imgid
ถ้ามี result ก็ค่อยใส่
WHERE images.userid = '63038 ' order by images.imgid
เมื่อมันหาฝั่งขวาไม่เจอ ก็จะเป็น null ตามที่เห็น
|
ประวัติการแก้ไข 2020-10-15 08:12:58
|
|
|
|
Date :
2020-10-15 08:11:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขออธิบายแบบบ้านๆนะครับ
Inner join คือ ข้อมูลที่ join ต้องมีทั้ง 2 ตาราง ข้อมูลถึงจะแสดง
left join คือ ข้อมูลที่ join ยึดข้อมูลตารางแรกเป็นหลักถ้ามีก็แสดง หากข้อมูลตารางที่ 2 ไม่มี ก็ยังคงแสดง แต่ค่าที่ได้จากตารางที่ 2 จะได้ NULL และถ้าข้อมูลในตารางที่ 2 มีแต่ตารางแรกไม่มี ก็ไม่แสดงเพราะตารางหลักคือตารางแรกไม่มีข้อมูล
right join คือ ข้อมูลที่ join ยึดข้อมูลตารางที่ 2 เป็นหลักถ้ามีก็แสดง หากข้อมูลตารางที่ 1 ไม่มี ก็ยังคงแสดง แต่ค่าที่ได้จากตารางที่ 1 จะได้ NULL และถ้าข้อมูลในตารางที่ 1 มีแต่ตารางที่ 2 ไม่มี ก็ไม่แสดงเพราะตารางหลักคือตารางที่ 2 ไม่มีข้อมูล
จะเข้าใจปะนะ แต่ก็ลองศึกษาเพิ่มเติมได้ครับ สู้ๆครับ
|
|
|
|
|
Date :
2020-10-17 14:37:10 |
By :
slurpee55555 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไข คห.1 การป้องกันไม่ให้ตารางที่ถูก LEFT JOIN แสดงคอลัมน์ซ้อนกับตารางหลักแล้วกลายเป็น null ในกรณีไม่มี
ให้เอา SELECT AS ไว้ท้าย ตย.เช่น
Code (SQL)
SELECT images.*, imground.*, images.userid AS userid FROM table
|
|
|
|
|
Date :
2020-10-20 00:43:44 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|