簡體   English   中英

MYSQL查詢-從2個表中獲取和檢查數據

[英]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

檢查joinSQL -加入

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.

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