Mysql:从表中拉出来

时间:2011-10-18 15:53:52

标签: mysql join

将查询放在一起时遇到了一些麻烦。我需要按照顺序显示图像,如果它们在“编辑”部分中,那么如果它们有一个要显示的顺序,它将首先显示编辑图像,但如果它没有在该部分中排序它只会默认并拉动已经订购的常规图像(可能不是编辑类型图像,但如果没有别的可用,则是首选图像)。我现在所拥有的是下面的查询,但不会首先拉出编辑排名的图像,而是“ordered_by”似乎优先。

SELECT i.img_name, a.artist_path_name, a.artist_dir, a.artist_name, ck.catKey_id        
FROM images AS i JOIN artists AS a USING (artist_id)
JOIN img_cat_table AS imc USING ( img_id )
JOIN catkeys AS ck USING (catKey_id)
WHERE site = 'editorial' AND editorial_order = 1 OR ordered_by = 1 GROUP BY artist_name ORDER BY ed_banner

它可能是我所遗漏的愚蠢 - 任何和所有的帮助都表示赞赏。

2 个答案:

答案 0 :(得分:1)

尝试类似:

...
ORDER BY CASE WHEN site = 'editorial' AND editorial_order = 1 THEN 1 ELSE 2 END,
         ed_banner

答案 1 :(得分:0)

或以更简单的方式使用相同的想法

ORDER BY (site = 'editorial' AND editorial_order = 1) DESC, ed_banner

它只使用FALSE,TRUE的顺序。

您应该从WHERE子句中删除相应的条件。