我有2个MySQL数据库
广告1
id | title | date
======================
1 title1 date 1
2 title2 date 2
3 title3 date 3
4 title4 date 4
5 title 5 date 5
和1代表ads_packs
id | id_pack | id_ad
========================
1 1 1
2 2 2
3 2 4
我需要先列出id_pack2广告,然后列出按日期排序的其他广告,列出订购的广告。
答案 0 :(得分:0)
SELECT ads.*, ads_packs.id_pack FROM ads
INNER JOIN ads_packs ON ads.id = ads_packs.ad_id
WHERE ads_pack.id_pack = 2
ORDER BY ads.date DESC
应该为您提供广告中的行,其中包含ID(额外),其中id_pack为2,按最新排序。
答案 1 :(得分:0)
只需加入表,然后按布尔表达式排序,检查id_pack是否等于2.我们在这里反转逻辑,因为将首先排序false case(0)。
SELECT *
FROM ads a
JOIN ads_packs p ON p.id_ad = a.id
ORDER BY p.id_pack <> 2, a.date;