mySQL INNER JOIN 和 UNION ALL
mySQL INNER JOIN together with UNION ALL
我有一个 table,其中的行在日期和类别 'bar' 匹配时被分组,现在我需要 INNER JOIN
这些与另一个 table 并使用WHERE answer = '2'
来自 table,但我不知道该怎么做。
SELECT category, date, client
FROM sbs_events
WHERE category <> 'bar'
UNION ALL
SELECT category, date, MIN(client) AS client
FROM sbs_events
WHERE category = 'bar'
GROUP BY category, date
我做了一个SQL Fiddle
我需要添加到 fiddle 的是
INNER JOIN sbs_userEvents
ON sbs_events.id = sbs_userEvents.event_id
WHERE answer = 2
AND user_id = 1
但是因为我已经有了 WHERE category = 'bar'
我不知道如何添加它。
SELECT category, date, client
FROM sbs_events
INNER JOIN sbs_userEvents ON sbs_events.id = sbs_userEvents.event_id
WHERE category <> 'bar' AND answer = 2 AND user_id = 1
UNION ALL
SELECT category, date, MIN(client) AS client
FROM sbs_events
INNER JOIN sbs_userEvents ON sbs_events.id = sbs_userEvents.event_id
WHERE category = 'bar' AND answer = 2 AND user_id = 1
GROUP BY category, date
我有一个 table,其中的行在日期和类别 'bar' 匹配时被分组,现在我需要 INNER JOIN
这些与另一个 table 并使用WHERE answer = '2'
来自 table,但我不知道该怎么做。
SELECT category, date, client
FROM sbs_events
WHERE category <> 'bar'
UNION ALL
SELECT category, date, MIN(client) AS client
FROM sbs_events
WHERE category = 'bar'
GROUP BY category, date
我做了一个SQL Fiddle
我需要添加到 fiddle 的是
INNER JOIN sbs_userEvents
ON sbs_events.id = sbs_userEvents.event_id
WHERE answer = 2
AND user_id = 1
但是因为我已经有了 WHERE category = 'bar'
我不知道如何添加它。
SELECT category, date, client
FROM sbs_events
INNER JOIN sbs_userEvents ON sbs_events.id = sbs_userEvents.event_id
WHERE category <> 'bar' AND answer = 2 AND user_id = 1
UNION ALL
SELECT category, date, MIN(client) AS client
FROM sbs_events
INNER JOIN sbs_userEvents ON sbs_events.id = sbs_userEvents.event_id
WHERE category = 'bar' AND answer = 2 AND user_id = 1
GROUP BY category, date