我的查询是
SELECT
UB.UnitID as UnitID, UB.Name as Unit, US.UnitID as UnitID, US.Name as Unit,
UP.UnitID as UnitID, UP.Name as Unit
FROM
Product PR
INNER JOIN
Unit UB on UB.UnitID = PR.BaseUnitID
INNER JOIN
Unit US on US.UnitID = PR.SecondaryUnitID
INNER JOIN
Unit UP on P.UnitID = PR.PrimaryUnitID
where
Productid = 1
输出:
BaseUnitID BaseUnit SecondaryUnitID SecondaryUnit PrimaryUnitID PrimaryUnit
---------- ------- ---------------- ------------ ------------- ------------
1 PCS 2 CTN 3 TRAY
SQL查询转换为此表单
UnitID Unit
------ ----
1 PCS
2 CTN
3 TRAY
答案 0 :(得分:2)
我不确定这是你所需要的,但也许它可以帮到你。
SELECT BaseUnitID UnitID, BaseUnit Unit FROM tbl UNION ALL
SELECT SecondaryUnitID, SecondaryUnit FROM tbl UNION ALL
SELECT PrimaryUnitID, PrimaryUnit FROM tbl
答案 1 :(得分:1)
根据您问题的修改版本中的查询,您可以在加入条件中使用or
或in
执行您想要的操作:
SELECT U.UnitID as UnitID, U.Name as Unit
FROM Product PR inner join
Unit U
on U.UnitID in (PR.BaseUnitID, PR.SecondaryUnitID, PR.PrimaryUnitID)
where Productid = 1;
这是正确的查询