2015-11-27 13 views
0

下面是数据库表和一些记录 enter image description heremysql命令由另一个表列,但需要一些(和)条件

我想达到什么是 选择产品排序条件一切(ORDER BY)是 首先,products_campaign结束日期ASC。 二,产品积分DESC 但WHERE条件是products_campaign enable等于1

结果如此。我想显示所有产品排序,首先它有活动的广告系列(启用)按end_date排序,如果没有,则按分数排序。 提及:有些产品在products_campaign中没有记录(例如,产品ID:104)。 我试过使用LEFT JOIN,但productID 104不会被选入结果列表。

任何帮助? 问候

回答

1

检查这有助于

SELECT A.* 
FROM PRODUCTS A LEFT OUTER JOIN 
    (SELECT * FROM PRODUCTS_CAMPAIGN WHERE ENABLE = 1) AS B 
ON A.PRODUCT_ID = B.PRODUCT_ID 
ORDER BY B.END_DATE ASC, A.SCORE DESC 
+0

不,我试过LEFT OUTER JOIN,但它不工作。就像productID 102不会被选中一样。因为启用是0.我想选择所有产品作为主要要求。 – lth159856

+0

那么你在哪里条件ENABLE = 1。编辑了我的答案。检查这是否是你期望的 – PK20

+0

只有在product_campaign中启用= 1的productID将按顺序由end_date ASC。如果没有在product_campaign中找到(没有记录或启用= 0)将按产品表product.score DESC – lth159856

相关问题