我有一个SQL查询
SELECT targetDate, anEvent
FROM myTable mt
JOIN lookupTable lookup
ON lookup.startDate < mt.targetDate AND endDate > mt.targetDate
当我尝试使其成为子查询时
SELECT targetDate, sub.anEvent
FROM myTable mt
JOIN
(
SELECT anEvent
FROM lookupTable lookup
WHERE lookup.startDate < mt.targetDate AND endDate > mt.targetDate
) sub
我收到错误消息“未定义mt”。
我需要使其成为子查询,该如何更正呢?
答案 0 :(得分:2)
为什么要进行子选择?您的第一个查询是完美的。
SELECT targetDate, anEvent
FROM myTable mt
JOIN lookupTable lookup
ON lookup.startDate < mt.targetDate AND endDate > mt.targetDate
答案 1 :(得分:0)
通过执行此操作可以达到相同的结果。
SELECT T.targetDate, T.anEvent
FROM
(
SELECT targetDate, anEvent
FROM myTable mt
JOIN lookupTable lookup
ON lookup.startDate < mt.targetDate AND endDate > mt.targetDate
) T
希望这会起作用。