【发布时间】:2013-06-08 11:38:47
【问题描述】:
我正在运行一个查询,其中包含在 WHERE 子句中多次使用的 same 子查询。
我有一个包含两个字段client_id、buyer_id 的表格。
子查询返回要从结果中排除的日期列表。
这就是我使用它的方式。
SELECT
id, client_id, buyer_id
FROM relation
WHERE
client_id NOT IN (SELECT <some_id> FROM <some_table> WHERE ...)
AND buyer_id NOT IN (SELECT <some_ids> FROM <some_table> WHERE ...)
这按预期工作,但令我困扰的是有两个相同的子查询。我想知道是否有一种方法可以让我使用一次并将结果用于两个地方。
谢谢。
【问题讨论】:
-
您是否尝试用 JOIN 替换该子查询?
-
@bluefeet,我已经大大简化了这个查询,只是为了给你真正的问题。我也无法理解
JOIN的ON子句会是什么样子。