如何结合来自同一个表的两个查询
问题描述:
我有两个查询,我想将它们组合成一个查询并区分styles
的name
。基本上我只是想得到teacher
他在schools
和其中school
属于styles
的样式。如何结合来自同一个表的两个查询
这是我每个到目前为止的查询。
表STYLES
查询1
SELECT *
FROM styles s
WHERE s.organization_id = (
SELECT t.school_id
FROM teachers t
WHERE t.user_id = 4
)
查询2
SELECT *
FROM styles s, teachers t
WHERE t.school_id = s.school_id
AND t.user_id = 4
答
你只是缺乏与你的查询正确连接。不要使用旧的连接方式,请使用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 *
使用的所有命名列。
您的预期成果是什么? – Blank
基于user_id的所有样式的组合结果。 –
你想看: 老师+风格+学校? –