我想返回一个结果集,列出包含第一个作者(按字母顺序排列的每本书)列的所有书籍。有多个相关作者,如何在加入表格时只显示一个
我有一个返回所有的书一个SQL查询,通过本书作者姓名加入对作者和订单,但倒下的时候我再尝试通过群书ID删除重复...
SELECT
ct.entry_id AS SKU,
c.channel_title,
ct.title, ct.status,
bat.title AS author_title
FROM exp_store_products sp
JOIN exp_channel_titles ct ON ct.entry_id=sp.entry_id
LEFT JOIN exp_channels c ON c.channel_id=ct.channel_id
LEFT JOIN exp_playa_relationships pl ON pl.parent_entry_id=ct.entry_id
LEFT JOIN exp_channel_titles bat ON bat.entry_id=pl.child_entry_id
WHERE ct.channel_id IN(18,33,43)
ORDER BY bat.title
我将不得不运行子查询吗?我宁愿不,如果我能避免它,但
我不知所措,为什么又说:
GROUP BY ct.entry_id
混乱的事情了......?
你不能只按一列进行分组,并保持原样。您需要对结果集中您不想汇总的每个列进行分组。 – Luaan 2015-02-24 09:51:13
GROUP BY是一个好主意,将它与MIN(author_name)结合使用。按规则记住常规组:“如果指定了GROUP BY子句,则SELECT列表中的每个列引用都必须标识分组列或作为set函数的参数。” – jarlh 2015-02-24 09:51:54