如何结合来自同一个表的两个查询

问题描述:

我有两个查询,我想将它们组合成一个查询并区分stylesname。基本上我只是想得到teacher他在schools和其中school属于styles的样式。如何结合来自同一个表的两个查询

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

表STYLES

enter image description here

查询1

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

查询2

SELECT * 
FROM styles s, teachers t 
WHERE t.school_id = s.school_id 
    AND t.user_id = 4 

结果2 enter image description here

+2

您的预期成果是什么? – Blank

+0

基于user_id的所有样式的组合结果。 –

+0

你想看: 老师+风格+学校? –

你只是缺乏与你的查询正确连接。不要使用旧的连接方式,请使用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 *使用的所有命名列。