我有一个运行良好的 SQL 查询,只是我想将第一个数据库中另一列的结果带入其中。这就是我目前所拥有的:
SELECT parts1.PART_NBR, parts1.NIIN
FROM parts1
WHERE parts1.PART_NBR='$pn'
UNION
SELECT parts2.REFERENCE_NUMBER, parts2.NIIN
FROM parts2
WHERE parts2.REFERENCE_NUMBER='$pn'
这就是我基本上想要的(当然这是行不通的):
SELECT parts1.PART_NBR, parts1.NIIN, parts1.ANOTHER_FIELD
FROM parts1
WHERE parts1.PART_NBR='$pn'
UNION
SELECT parts2.REFERENCE_NUMBER, parts2.NIIN
FROM parts2
WHERE parts2.REFERENCE_NUMBER='$pn'
如何编写查询,以便它执行相同的操作,但实际上会返回结果中的额外字段?
创建一个空字段,返回NULL
SELECT parts1.PART_NBR, parts1.NIIN, parts1.ANOTHER_FIELD
FROM parts1
WHERE parts1.PART_NBR='$pn'
UNION ALL
SELECT parts2.REFERENCE_NUMBER, parts2.NIIN, NULL AS ANOTHER_FIELD
FROM parts2
WHERE parts2.REFERENCE_NUMBER='$pn'
EDIT:从您的评论中您看到的结果为
Part Number: 21223 NIIN: 008194914 Name: CAPACITOR
Part Number: 21223 NIIN: 011241926 Name: HEAT SINK
Part Number: 21223 NIIN: 003901600 Name: KNIFE
Part Number: 21223 NIIN: 003901600 Name:
Part Number: 21223 NIIN: 008194914 Name:
Part Number: 21223 NIIN: 011241926 Name:
第一个结果来自表格parts1
第二个来自parts2
, 空白Name
字段是您要返回的地方NULL
.
根据您提供的信息,我不明白您为什么使用UNION
从这两个表中获取结果,因为它们似乎包含相同的信息,除了第一个表也有Name
field.
难道不是更好吗JOIN
零件/参考号上的表格以便选择名称?
EDIT:正如您在评论中所说,之前您得到了DISTINCT
结果集因为使用UNION
。随着NULL
字段中的行不再是唯一的,并且查询返回所有行。
我在评论中说,我看不到当前的 UNION 语句为您做了什么,因为两个表似乎都有相同的信息。这个询问是否比您告诉我们的内容更多?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)