我是編程和 mysql 的新手,我認為這很簡單但不適合我 所以,我有這兩個表 Tickets 和 Ticket_user,我需要從表票證中獲取所有欄位,其中 user_id =15 和 ticket_id >8
表 1 : 票
id name ...... other fields
7 Tickte1
8 Tickte2
9 ticket3
10 ticket4
11 Tickte5
表 2:Ticket_users
id ticket_id User_id
1 7 15
2 8 16
3 9 15
4 10 15
5 11 8
結果
ticket_id name ...... other fields
9 Tickte3
10 ticket4
我怎樣才能做到這一點?感謝任何幫助。
uj5u.com熱心網友回復:
這兩個查詢都將起作用。
第二是更快,如果你要處理大量的資料首先使用IN條款
SELECT
id, name
FROM
Ticket
WHERE
id IN (SELECT
ticket_id
FROM
Ticket_users
WHERE
User_id = 15 AND ticket_id > 7);
第二次使用 INNER JOIN
SELECT
id, name
FROM
Ticket t
INNER JOIN
(SELECT
ticket_id
FROM
Ticket_users
WHERE
User_id = 15 AND ticket_id > 7) ut ON t.id = ut.ticket_id;
uj5u.com熱心網友回復:
您需要查看JOIN CLAUSE。
你要找的是這樣的
SELECT t.*
FROM Ticket t LEFT JOIN Ticket_users tu ON t.id = tu.ticket_id
WHERE tu.user_id = 15 AND t.id > 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361082.html
標籤:mysql
上一篇:Mysql在特定匹配后選擇X行
下一篇:SQLCASE陳述句邏輯
