我有三個表格 users,photos,likes
users table ->id, username
photos table->id, url, user_id
likes->photo_id, user_id
likes就是誰按了哪張照片讚
photo就是所有照片
我想知道誰按了所有照片讚。
我可以用join做出來,但是我想知道能不能使用 where XX in 做出來
請各位大大幫忙,謝謝
您可以使用 WHERE ... IN 語法來查詢滿足特定條件的記錄。在您的情況中,您可以執行以下查詢:
SELECT u.username
FROM users u
WHERE u.id IN (
SELECT l.user_id
FROM likes l
INNER JOIN photos p ON l.photo_id = p.id
)
在這個查詢中,我們使用了一個子查詢來獲取所有在 likes 表中按讚的用戶 ID。然後,我們在 WHERE 子句中使用了 IN 運算子來查詢所有在 users 表中存在的用戶 ID。
您也可以使用連接來執行相同的查詢。在這種情況下,您的查詢看起來可能會像這樣:
SELECT u.username
FROM users u
INNER JOIN likes l ON u.id = l.user_id
INNER JOIN photos p ON l.photo_id = p.id
這兩個查詢的結果是一樣的。您可以根據您的喜好來選擇使用哪種方法。