Mysql从2个表中列出

时间:2011-02-23 10:08:46

标签: mysql

我有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广告,然后列出按日期排序的其他广告,列出订购的广告。

2 个答案:

答案 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;