1

我在 sql 查询中遇到了一个小问题,

这是查询

SELECT events.event_id,
( SELECT favorite_events.event_id, 
        (CASE favorite_events.event_id WHEN NULL THEN 0 ELSE 1 END)
        FROM favorite_events 
        WHERE favorite_events.event_id = events.event_id 
) AS is_favorite
FROM events 
WHERE start_date = 2013-07-16

它给了我“操作数应包含 1 列”错误,请帮忙!

4

2 回答 2

2

在子查询中,您选择 2 列。您不能将 2 列重命名为is_favorite.

我假设,通过查看查询,您可能不需要该字段favorite_events.event_id。只需删除该部分。

于 2013-07-16T09:35:39.653 回答
2

使用 JOIN,而不是相关子查询。

SELECT e.event_id,
       f.event_id IS NOT NULL AS is_favorite
FROM events e
LEFT JOIN favorite_events f
ON f.event_id = e.event_id
WHERE e.start_date = '2013-07-16'
于 2013-07-16T09:38:29.400 回答