【发布时间】:2015-09-29 03:17:56
【问题描述】:
我有 2 张桌子。一个已被修剪以仅显示符合某些标准的 ID。第二个需要修剪以仅显示与前一个 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...
它会生成一列,其中包含“会议组织者”以及 active_meetings 表中的每个人的 ID。 (注意,有多种类型/角色,这是获取它们的最佳方式)
现在,我需要这些数据来过滤另一个表,另一个连接。这是我的查询的开始
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 中,我将使用数组比较或只运行另一个查询...任何帮助将不胜感激。
【问题讨论】:
标签: sql sql-server