我有3张桌子:
我想要 IN 中的所有项目,如果它们存在于 IN_OUT 和 OUT 中,则需要 OUT 中的值。
我写道:
SELECT intable.colA, outtable.colB
from IN intable
LEFT OUTER JOIN IN_OUT inouttable ON inouttable.idin = intable.idin
LEFT OUTER JOIN OUT outtable ON inouttable.idout = outtable.idout
这给了我一个例子:
我尝试了这个解决方案:相同的结果。
SELECT intable.colA, outtable.colB
FROM IN intable
LEFT OUTER JOIN (SELECT inouttable.idin, outtable.colB FROM IN_OUT inouttable, OUT outtable WHERE inouttable.idout = outtable.idout) out2
ON in.idin = out2.idin
我该如何编写才能使其正常工作?
为了说明,我有:
IN TABLE
IDIN COLA
1 ABC
2 DEF
OUT TABLE
IDOUT COLA
1 XYZ
2 XYZ2
INOUT TABLE
IDIN ID OUT
1 1
1 2
我想要这样的结果:
COLA COLB
ABC XYZ
ABC XYZ2
DEF null
但目前,我只成功了:
COLA COLB
ABC XYZ
ABC XYZ2
ABC null
DEF null
我几个小时面临的这个问题是由于...(非常)制作不良的 ID... 如果您遇到同样的问题,请仔细检查您的 ID。