从表中选择值等于另一表中值的行

时间:2019-11-20 14:50:35

标签: mysql

别名

  

id domain_id源目标

  

id名称

我想从别名(源(域)中的id等于别名中domain_id)的别名中选择源

我尝试过这样的事情:

SELECT source FROM aliases WHERE domain_id IN(SELECT * FROM domains WHERE id="2")

我想获取domain_id = 2的源。 我不能这样做:SELECT source FROM aliases WHERE domain_id = 2 因为将从用户权限中提供2个

1 个答案:

答案 0 :(得分:1)

SELECT a.source
FROM aliases a 
INNER JOIN domains d ON a.id = d.id
WHERE a.domain_id = 2;

在这两个表之间使用INNER JOIN将提供您想要的答案,INNER JOIN仅用于这种情况,但您当然可以通过以下操作使用您的使用方式(子查询):

SELECT a.source 
FROM aliases a 
WHERE a.domain_id IN(SELECT d.id FROM domains d WHERE d.id=2)

编辑:我总是使用字母来描述用于查询的表,这样更容易找到每个表中的列。