SELECT `a`.`department`, `a`.`category`, `a`.id,
(SELECT group_concat(t_0) FROM images WHERE ad_id=a.id) t_0,
(SELECT group_concat(t_1) FROM images WHERE ad_id=a.id) t_1,
(SELECT group_concat(t_1) FROM images WHERE ad_id=a.id) t_8
FROM `ads` AS `a`
WHERE (a.department = 1) AND (a.category = 12) AND (a.charged=1)
ORDER BY `a`.`id` DESC
有没有比这更好的解决方案? 我需要从图像表中的所有图像的每个a.id(ad_id)Mysql在一行中选取/连接多行
谢谢:)
编辑...
啊哈看来这是工作:
SELECT `a`.`department`, `a`.`category`, `a`.id, group_concat(t_0), group_concat(t_1), group_concat(t_8)
FROM `ads` AS `a`
LEFT JOIN images i ON i.ad_id=a.id
WHERE (a.department = 1) AND (a.category = 12) AND (a.charged=1)
GROUP BY a.id DESC
不知道这是否正确的解决方案,你... :)
我们对应用程序一无所知。 maby只有大约5张图片或者其他东西?... 但是你的情况另有一个说法。使用group_concat只是消耗更多的数据库时间和应用程序服务器时间通常更可扩展和更好的权衡;) – 2010-08-21 13:48:28
感谢评论!那么也许有5个图像,但我的经验是,每个系统的复杂性增长,因此我不会写在首位。 – 2010-08-21 14:43:22