如何组合同一个表中的两个查询

时间:2016-08-01 03:59:31

标签: mysql

我有两个查询,我想将它们合并为一个查询,并区分name的{​​{1}}。基本上我只想获得styles所属teacher的样式以及schools所属的styles organization的样式。

到目前为止,这是我的查询。

STYLES表

getopt man page

查询1

school

结果2 enter image description here

查询2

SELECT * 
FROM styles s
WHERE s.organization_id = (
    SELECT t.school_id 
    FROM teachers t 
    WHERE t.user_id = 4 
)

结果2 enter image description here

1 个答案:

答案 0 :(得分:1)

您只是缺少与查询的正确连接。不要使用旧的联接样式,请使用INNER JOIN

我可以看到你已经通过不同的列加入了styles表和teachers表。 一种方法将是一个简单的UNION:

SELECT * 
  FROM styles s
         INNER JOIN teachers t
               ON s.organization_id = t.school_id
 WHERE t.user_id = 4
UNION
SELECT * 
  FROM styles s
         INNER JOIN teachers t 
               ON t.school_id = s.school_id 
 WHERE t.user_id = 4

**注意:**不要使用select *使用所有命名列。