[英]MYSQL Query - Get and check data from 2 tables
我有一個表名稱USERS,用於存儲所有用戶。 通過使用以下查詢,我得到了想要的用戶:
SELECT * FROM USERS WHERE username = 'Jack'
很好。
當我存儲用戶關注的表時,我還有另一個稱為“活動”的表。
現在,我想做一個查詢,在其中使用第一個查詢選擇用戶的名稱,然后檢查是否已經從“活動”表中關注該用戶。
我的“活動”表的設置如下:
id(對於當前用戶/我)
IdOtherUser(我關注的用戶的ID)
類型(“跟隨”類型)
我知道這是可能的,但是由於我對MYSQL還是很陌生,所以我似乎還沒有弄清楚,我也檢查了其他類似的問題,但沒有發現任何幫助!
如果您已經知道任何好的答案,請告訴我!
非常感謝您的幫助,在此先感謝任何可以提供幫助的人!
可能的解決方案?
SELECT
*,
a.type
FROM USERS u
LEFT JOIN Activity a
ON a.idOtherUser = u.id AND a.id = 145
WHERE u.id = 86
檢查join
: SQL -加入
SELECT
u.id,
u.username,
a.type
FROM USERS u
LEFT OUTER JOIN Activity a
ON u.id = a.id
WHERE a.IdOtherUser = 139
選中它,它應該可以正常工作:)如果您想知道這些a,u是什么,它們只是在列名附近定義的別名。
IF語法:
IF(表達式,expr_true,expr_false);
您可以使用LEFT OUTER JOIN和GROUP BY來計算匹配數(可能為0),而我們可以使用IF來檢查是否有活動:-
SELECT u.id,
u.name,
IF(COUNT(a.user_id) > 0, 'Activities', 'No Activities')
FROM users u
LEFT OUTER JOIN activity a
ON u.id = a.user_id
GROUP BY u.id, u.name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.