我有4张桌子
表A
code accnt
-------------------
123 xxx
222 yyy
333 zzz
表B
code alloted
-----------------------
123 100
222 200
333 300
表C
code ref project
-------------------------------
333 11-2015 maintenance
表D
code ref item cost
---------------------------------------
333 11-2015 hammer 100
333 11-2015 nail 200
我想加入此表并具有和输出这样的内容
code accnt ref alloted
-----------------------------------------
123 xxx 100
222 yyy 200
333 zzz 300
333 maintenance 11-2015
333 hammer 11-2015 100
333 nail 11-2015 200
我为此使用左联接,但我无法将字段A.accnt,C.project和D.item合并为一列。
听起来您需要JOIN
前2个表UNION
,而其他2个表则需要。
看看这是否适合您-
SELECT a.code, a.accnt, NULL AS ref, b.alloted
FROM A
LEFT JOIN B ON a.code = b.code
UNION
SELECT c.code, c.project AS accnt, c.ref, NULL AS alloted
UNION
SELECT d.code, d.item AS accnt, d.ref, d.cost as alloted
UNION
合并时将获得不同的结果。如果要得到所有结果,请UNION ALL
改用。
这是一个可能有助于您理解两者之间的区别的解释-JOIN
根据某些条件通过附加列来UNION
组合多个表,其中通过附加行来组合多个表。有很多教程可以解释JOIN
/UNION
如果您需要更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句