SQL左边加入了多个产品ID

时间:2017-12-04 14:30:59

标签: php mysql

我有一个SQL表,需要加入一些数据。在表2中,有多个产品ID,其中一些具有不同的日期。

例如

Table 1 (Master)
Product

左连接

表2

Product | Date 1
AA      | 01/01/2018
AA      | 01/02/2018
AB      | 01/01/2018
AC      | 01/01/2018
AC      | 01/02/2018

我想要的是使数据看起来像:

Product | Date 1     | Date 2
AA      | 01/01/2018 | 01/02/2018
AB      | 01/01/2018
AC      | 01/01/2018 | 01/02/2018

任何建议都会有很大的帮助。

谢谢你 克里斯

2 个答案:

答案 0 :(得分:0)

您可以尝试以下查询:

SELECT t1.Product, 
       MIN(Date) AS Date1, 
       CASE WHEN COUNT(*) > 1 THEN MAX(Date) END AS Date2
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON t1.Product = t2.Product
GROUP BY t1.Product

该查询使用LEFT JOINTable2获取相关记录因此,如果没有Date1Date2,则NULL将为Date2相关记录。仅当 Product 至少有两个相关记录时才会设置

Demo here

答案 1 :(得分:0)

SELECT t1.Product, 
   MIN(Date) AS Date1, 
   CASE WHEN COUNT(t1.Product) > 1 THEN MAX(Date) END AS Date2
   FROM Table1 AS t1
   LEFT JOIN Table2 AS t2 ON t1.Product = t2.Product
   GROUP BY t1.Product

请勿在sql查询中使用*