我有一个恼人的问题是,这条SQL我需要在不UNION如何重写一个UNION SQL查询,以便将其与SELECT
(SELECT entry_id, url_title, channel_id, entry_date, title
FROM exp_channel_titles
WHERE exp_channel_titles.channel_id = 5
AND status = 'open'
ORDER BY entry_date asc
LIMIT 2)
UNION
(SELECT entry_id, url_title, channel_id, entry_date, title
FROM exp_channel_titles
WHERE exp_channel_titles.channel_id = 6
AND status = 'open'
AND entry_date > ((unix_timestamp(Now()))+(2*86400))
ORDER BY entry_date asc LIMIT 1)
UNION
(SELECT entry_id, url_title, channel_id, entry_date, title
FROM exp_channel_titles
WHERE exp_channel_titles.channel_id = 5
AND status = 'open'
ORDER BY entry_date asc LIMIT 1,2)
LIMIT 3;
写开始那么它的作用是选择2的新闻报道,然后在事件未来的“故事”,那么如果没有事件故事添加另一个新闻故事。
所以两个类别,但一个有不同的选择,所以加权总是有3但如果可能的事件。
我需要考虑一种方法来做到这一点与连接,或开始没有()括号,使其更简单。我加载的地方不喜欢UNION。
你可以提供使用相关表(创建和数据)的sql导出,这样人们可以帮助你更容易地工作 – Jester
你现在不需要括号 – RiggsFolly
用'SELECT * FROM(...)包装整个东西。 ..)'? – trincot