[英]MYSQL PHP select the opposite of a query
我有兩張桌子。 一張表包含我需要的一切,包括 cardId(PK) 另一個名稱是用戶類型表。 該表存儲了 userId 和 cardId(FK)。
SELECT ci.cardId, ci.year, ci.name, ci.number
FROM USERCARDS uc
INNER JOIN CARDINDEX ci ON uc.cardId = ci.cardId
WHERE uc.userId = 'USER_ID'
因此,對於這個查詢時,它會顯示CardId中,年份,名稱,並從數CARDINDEX
。 它只會顯示用戶保存在USERCARDS
中的USERCARDS
。
我想做相反的事情。 如果用戶正在查看 5 張卡片,但CARDINDEX
有 50 張卡片,則此查詢將顯示五張卡片的信息。 但是,對於新查詢,我想顯示剩余的 45 張卡片。 基本上,他們無法添加他們已經關注的卡片。
我試圖讓uc.cardId != ci.cardId
但這沒有用。 我有點失落。
您可以將其LEFT JOIN
為LEFT JOIN
:
SELECT ci.cardId, ci.year, ci.name, ci.number
FROM CARDINDEX ci LEFT JOIN
USERCARDS uc
ON uc.cardId = ci.cardId AND
uc.userId = 'USER_ID'
WHERE uc.cardID IS NULL;
或者,您可以使用 `NOT EXISTS 來編寫它:
SELECT ci.cardId, ci.year, ci.name, ci.number
FROM CARDINDEX ci
WHERE NOT EXISTS (SELECT 1
FROM USERCARDS uc
WHERE uc.cardId = ci.cardId AND
uc.userId = 'USER_ID'
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.