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