简体   繁体   English

基于同一张表获取 3 列左连接

[英]Get 3 column left join based on same one table

I have 3 column here in tblItem我在 tblItem 中有 3 列

  • purchase购买
  • stock股票
  • calculate计算

and this 3 column have to join with tblMeasurement这 3 列必须加入 tblMeasurement

  • name姓名

I have tried this, but when I display 3 columns show the same all.我已经尝试过了,但是当我显示 3 列时都显示相同。

SQL SQL

$sql         = "SELECT A.itemID, A.categoryID, A.purchaseMeasurementID, A.stockMeasurementID, A.calculationMeasurementID, A.itemName, B.itemCategoryName, C.measurementName
                FROM tblPurItem A
                LEFT JOIN tblPurItemCategory B
                ON A.categoryID = B.itemcategoryID
                LEFT JOIN tblPurMeasurement C
                ON A.purchaseMeasurementID= C.measurementID";

As you see my sql above, it has join only for purchaseMeasurementID.正如您在上面看到的我的 sql,它仅用于 purchaseMeasurementID。 How do I join stockMeasurementID and calculationMeasurementID based on also tblPurMeasurement?如何基于 tblPurMeasurement 加入 stockMeasurementID 和 calculationMeasurementID? Is there any missing here?这里有什么遗漏吗?

在此处输入图像描述

Try using this subquery instead.请尝试改用此subquery

SELECT A.itemID, A.categoryID, A.purchaseMeasurementID, A.stockMeasurementID, A.calculationMeasurementID, A.itemName
    , (select B.itemCategoryName from tblPurItemCategory B where A.categoryID = B.itemcategoryID limit 1) as itemCategoryName
    , (select C.measurementName from tblPurMeasurement C where A.purchaseMeasurementID= C.measurementID limit 1) as purchasemeasurementName
    , (select C.measurementName from tblPurMeasurement C where A.stockMeasurementID= C.measurementID limit 1) as stockmeasurementName
    , (select C.measurementName from tblPurMeasurement C where A.calculationMeasurementID= C.measurementID limit 1) as calculationmeasurementName
FROM tblPurItem A

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM