簡體   English   中英

SQL WHERE 多個條件

[英]SQL WHERE multiple criteria

問題在這里

問題:編寫一個 SQL 查詢,使用您朋友喜歡的頁面向 user_id = 1 的用戶推薦頁面。 它不應該推薦您已經選擇的頁面。

SELECT DISTINCT page_id recommended_page
FROM Likes 
WHERE user_id IN(
SELECT user1_id 
FROM friendship
WHERE user2_id = 1 
UNION ALL 
SELECT user2_id
FROM friendship 
WHERE user1_id = 1) 
AND user_id != 1

為什么這不正確?

相反,我必須尋找一個用戶從不喜歡的頁面來擺脫 88 ,這是用戶喜歡並且應該被排除的頁面。 為什么我不能只用 user_id 過濾它!= 1

以下是正確答案:

Correct answer: 
SELECT DISTINCT page_id recommended_page
FROM Likes 
WHERE user_id IN(
SELECT user1_id 
FROM friendship
WHERE user2_id = 1 
UNION ALL 
SELECT user2_id
FROM friendship 
WHERE user1_id = 1) 
AND page_id NOT IN
#Pages user1 didn't like before 
(SELECT page_id
FROM Likes
WHERE user_id = 1)

您可以嘗試為子查詢的結果表提供一個虛擬名稱。 喜歡:

SELECT DISTINCT page_id recommended_page FROM Likes WHERE user_id IN( SELECT user1_id FROM friendship WHERE user2_id = 1 UNION ALL SELECT user2_id FROM friendship WHERE user1_id = 1) Customfriendship AND user_id != 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM