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