簡體   English   中英

如何合並兩個表以從MySQL中的不同表獲取結果

[英]How to combine two tables to get results from different table in MySQL

我有三張桌子

在此處輸入圖片說明

我的用戶ID:1231。我正在嘗試獲取那些授予我訪問權限的用戶的結果。 我的意思是他們的商標名稱。

因此,根據上表,我應該得到如下結果:

在此處輸入圖片說明

為了獲取上述結果,我嘗試了一些查詢。 其中之一如下:

 SELECT a.UserID, a.Mark1, a.Mark2, b.Name FROM details a, profile b WHERE a.UserID IN (SELECT UserID FROM Access WHERE GrantStatus = 'granted' and GrantUserID = '1231');

執行上述查詢,得到以下結果:

在此處輸入圖片說明

有人可以幫我解決這個問題嗎?

您需要一個join條件:

SELECT d.userID, d.mark1, d.mark2, p.name
FROM details d JOIN
     profile p
     ON d.userID = p.userId
WHERE d.userID IN (SELECT userID
                   FROM access
                   WHERE grantstatus = 'granted' and grantuserID = '1231'
                  );

簡單規則:請勿在from子句中使用逗號。

您只能使用join s來做到這一點:

SELECT d.userID, d.mark1, d.mark2, p.name
FROM details d JOIN
     profile p
     ON d.userID = p.userId JOIN
     access a
     on a.userId = d.userId
WHERE a.grantstatus = 'granted' and a.grantuserID = '1231';

暫無
暫無

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

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