
กำลังโหลด...

กำลังโหลด...

Route จริงต้องตอบคำถาม เช่น หนังสือของ user คนนี้ หรือหนังสือเรียงตามชื่อ เราจะอ่าน query ยาวจากซ้ายไปขวา และเปลี่ยนทีละส่วนแทนการจำทั้งบรรทัด
flowchart LR
A["FROM\nเริ่มจาก table ไหน"] --> B["JOIN\nเอาตารางไหนมาต่อ"]
B --> C["WHERE\nเอา row ไหน"]
C --> D["ORDER BY\nเรียงอย่างไร"]
D --> E["SELECT\nส่ง column ใด"]
SELECT id, title, author
FROM books
WHERE user_id = 1
ORDER BY id DESC;
| ส่วน | คำถามที่ตอบ |
|---|---|
FROM books |
เริ่มจาก table ไหน |
WHERE user_id = 1 |
เก็บเฉพาะ row ใด |
ORDER BY id DESC |
ให้รายการใหม่อยู่ก่อน |
flowchart LR
B["books\nuser_id = 1"] ---|"จับคู่ด้วย id"| U["users\nid = 1\nemail = student@example.com"]
SELECT books.id, books.title, users.email AS owner_email
FROM books
JOIN users ON books.user_id = users.id
WHERE books.user_id = 1;
อย่าจำว่า JOIN คือ “รวมสองตาราง” อย่างเดียว ให้จำประโยคนี้:
books.user_id = users.idคือกติกาว่า row ไหนเป็นของใคร
id | title | owner_email
---+--------------------+---------------------
1 | The Little Prince | student@example.com
column reference "id" is ambiguous → เขียนให้ชัดเป็น books.id หรือ users.idON ว่าใช้คู่ user_id กับ id ถูกหรือไม่