mysql加入倍数

时间:2011-05-09 15:49:58

标签: mysql sql

使用products表作为主表,我想列出所有产品。如果产品在表prod_desc中有描述,我想将其拉入。另外,如果产品有制造商描述,我想将其拉入。我希望产品行显示一次,是否有产品说明,制造商描述,一个,两个或两个。

左连接适用于一个外部查找,但第二个连接会混淆它。

SELECT * FROM t1
LEFT JOIN t3 ON t1.a=t3.a
LEFT JOIN t2 ON t1.b=t2.b

2 个答案:

答案 0 :(得分:1)

如果同一产品有多个产品说明或同一产品有多个制造商说明,则需要“汇总”说明。

Select P.Id, P...
    , Group_Concat( PD.desc ) As DescriptionList
    , Group_Concat( PMD.desc ) As MfrDescriptionList
From products As P
    Left Join prod_desc As PD
        On PD.product_id = P.id
    Left Join prod_mfr_desc As PMD
        On PMD.product_id = P.id
Group By P.id

答案 1 :(得分:0)

我认为您的“select *”可能就是问题所在。但是我无法确定你的意思是“弄乱它”。尝试只选择你想要的东西,看看是否能解决它。

例如,

SELECT a, b, c, d, e
FROM t1
  LEFT JOIN t3 
    ON t1.a = t3.a
  LEFT JOIN t2
    ON t1.b = t2.b