我有2张桌子。一个人已被修剪,只显示符合某些标准的ID。第二个需要修剪,只显示与前一个"数组匹配的数据"我的。可以有多个结果。 请考虑以下事项:
Query_1_final :返回符合特定条件的用户的ID:
select
t1.[user_id]
from
[SQLDB].[db].[meeting_parties] as t1
inner join
(select distinct
[user_id]
from
[SQLDB].[db].[meeting_parties]
group by
[user_id]
having
count([user_id]) = 1) as t2 on t1.user_id = t2.user_id
where
[type] = 'organiser'
这很好用并且返回:
user_id
--------------------
22
1255
9821
and so on...
它会生成一个列,其中包含每个人的ID,会议组织者"以及active_meetings表中。 (注意,有多种类型/角色,这是抓住它们的最佳方式)
现在,我需要这些数据来过滤另一个表,另一个连接。这是我的查询的开始
Query_2_PREP :返回会议有"开始"的5列已经
SELECT
[meeting_id]
,[meeting_style]
,[meeting_day]
,[address]
,[promos]
FROM
[SQLDB].[db].[all_meetings]
WHERE
[meeting_started] = 'TRUE'
这也适用
meeting_id | meeting_style | meeting_day ...
---------------------------------------------
23 open M,F,SA
23 discussion TU,TH
23 lead W,F
and so on...
并返回已开始的所有10,982个会议,但我需要它只返回来自Query_1_final
的不同组织者ID的会议(应该更多)喜欢1200条记录)
理想情况下,我需要一些东西"喜欢"以下(但当然不起作用)
查询2 :需要返回仅来自管理单位ID的所有会议。
SELECT
[meeting_party_id]
,[meeting_style]
,[meeting_day]
,[address]
,[promos]
FROM
[SQLDB].[db].[all_meetings]
WHERE
[meeting_started] = 'TRUE'
AND [meeting_party_id] = "ANY Query_1_final results, especially multiple"
我已经尝试过嵌套JOIN和INNER JOIN,但我认为这里有一些关于SQL的基本内容。在PHP中我会使用数组比较或只是运行另一个查询...任何帮助将非常感激。
答案 0 :(得分:1)
只需使用IN
即可。这是逻辑的结构:
with q1 as (
<first query here>
)
SELECT m.*
FROM [SQLDB].[db].[all_meetings] m
WHERE meeting_started = 'TRUE' AND
meeting_party_id IN (SELECT user_id FROM q1);