我有一个使用 INTERSECT 执行的复杂选择查询(Query-1),它返回特定列的 ID。
查询 #1:
SELECT my_id FROM my_table
INTERSECT
SELECT my_id FROM other_table;
现在还有另一个更复杂的查询,它需要多次查询 #1 的结果。
查询 #2:
SELECT *
FROM
(SELECT my_id, col_1, my_value
FROM my_table
WHERE my_id IN (result from query-1)
AND col_3 IN (SELECT col_3 FROM another_table1
WHERE my_id IN (result from query-1)
AND another_col IN (SELECT another_col
FROM another_table2
WHERE my_id IN (result from query-1))))
PIVOT
(MIN(my_value)
FOR(col_1) IN(1 AS name, 2 AS lastname, 3 AS address)
)
正如您所见,query-1 的结果在 query-2 中需要多次,我尝试在任何需要的地方替换 query-2 中的整个 query-1,这增加了查询的复杂性和可读性。
有没有办法以简单的方式做到这一点?