จากรูปภาพด้านบนครับ
จะทำการเปรียบเทียบระหว่าง Record ล่าสุดของ Table : Store โดยใช้คำสั่ง [ SELECT * From Store order by id DESC LIMIT 1 ]
กับทุก Record ของ Table : Customer โดยทำการเปรียบเทียบ 2 เงื่อนไข ดังนี้
1. column product กับ product_select
2. Column color กับ colors
โดยถ้าทั้ง 2 เงื่อนไขนี้เป็นจริงให้ทำการส่ง ID No. ของ Table : Store คือ เลข 5 ไปที่อีเมล์ใน column email
จากโค๊ดด้านบน สงสัยนิดนึงค่ะ ว่าฟังก์ชันมีการตรวจสอบวนจนครบ ทุก id หรือเปล่าค๊ะ
สมมติแบบว่า if id แรกแล้วเงื่อนไขเป็นจริง ก็ส่งเมลล์ไป แล้วโค๊ดจะทำการตรวจสอบ id ต่อมาหรือเปล่าค๊ะ อ่านดูแล้วสงสัยค๊ะ
ลองคำสั่งนี้ใน ฐานข้อมูลดูครับว่าใช่แบบที่ต้องการหรือเปล่า คำสั่งจะเปรียบเทียบก่อนว่า product = product_select หรือไม่แล้วก็ไปเปรียบเทียบในวงเล็บ จะเปรียบเทียบสีว่าเหมือนกับอีกตารางหรือไม่ หรือ สีอีกตารางเป็น all เมื่อเปรียบเทียบเจอก็ดึง id product color ของตาราง store ออกมา แล้วก็ดึง email ตาราง customer มาด้วย ทีนี้ก็เหลือแต่คุณที่ต้องเอาข้อมูลที่โชว์ออกมาไปส่งอีเมล์ละครับ ลองดูครับ
คำสั่งครับ
SELECT S.id,S.product,S.color,C.email FROM store S JOIN customer C ON S.product = c.product_select AND (s.color= c.color OR c.color = 'all')