繁体   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