mysql连接倍数

mysql连接倍数,mysql,sql,Mysql,Sql,使用产品表作为主表,我想列出所有产品。如果产品在表prod\u desc中有描述,我想将其拉入。另外,如果产品有制造商描述,我想把它拉进来。我希望产品行显示一次,无论它是否有产品描述、制造商描述、一个、两个或两个 左连接对于一个外部查找很有效,但是第二个会把它弄糟 SELECT * FROM t1 LEFT JOIN t3 ON t1.a=t3.a LEFT JOIN t2 ON t1.b=t2.b 在我看来,您的“select*”可能是问题所在。但我不能确定你所说的“搞砸”是什么意思。试着只

使用
产品
表作为主表,我想列出所有产品。如果产品在表
prod\u desc
中有描述,我想将其拉入。另外,如果产品有制造商描述,我想把它拉进来。我希望产品行显示一次,无论它是否有产品描述、制造商描述、一个、两个或两个

左连接对于一个外部查找很有效,但是第二个会把它弄糟

SELECT * FROM t1
LEFT JOIN t3 ON t1.a=t3.a
LEFT JOIN t2 ON t1.b=t2.b
在我看来,您的“
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
如果同一产品有多个产品说明或同一产品有多个制造商说明,则需要“汇总”说明

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

你说搞砸是什么意思?如果其中一个join匹配,看起来会打印一行。我希望t1打印一次,无论它是否匹配一个、两个或两个。@ser665065是否可能是t2、t3中有多个值用于单个t1.a?如果是这样的话,每个产品都会有不止一行。一些示例输入和预期输出会有所帮助。产品说明和制造商说明是否存储在同一个表中?确定。对不起****我的测试数据有问题。表t2、t3、t4中的b列应该是唯一的。它们充当表t1的外键。@user665065:那么,您的问题解决了吗?现在您发现您的数据不正确了?还是还开着?