iT邦幫忙

0

Mysql 哪些人按了所有照片用in關鍵字

  • 分享至 

  • xImage

我有三個表格 users,photos,likes
users table ->id, username
photos table->id, url, user_id
likes->photo_id, user_id
likes就是誰按了哪張照片讚
photo就是所有照片
我想知道誰按了所有照片讚。
我可以用join做出來,但是我想知道能不能使用 where XX in 做出來
請各位大大幫忙,謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
bill83a707
iT邦新手 5 級 ‧ 2022-12-14 13:47:58
最佳解答

您可以使用 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

這兩個查詢的結果是一樣的。您可以根據您的喜好來選擇使用哪種方法。

我要發表回答

立即登入回答