【发布时间】:2020-07-21 06:09:20
【问题描述】:
我正在尝试查询 2 个表,在合并重复项时返回值。虽然 UNION 应该删除重复项,但在这种情况下似乎失败了。请注意,此查询是使用 PHP 发送的。
查询
<?php
$keywords = 'MOTOR';
$toSend = "SELECT part as Column1, '' as Column2 FROM soldParts WHERE part LIKE '%".$keywords."%' UNION SELECT part as Column1, vin as Column2 FROM vinData WHERE part LIKE '%".$keywords."%' ORDER BY column1 ASC";
?>
电流输出
Column1 Column2
电机 1
电机 2
电机 2 CCDD44
电机 3 AABB1122
电机 3
期望的输出
Column1 Column2
电机 1
电机 2 CCDD44
电机 3 AABB1122
我查了几个类似的问题。但是,我的第二列应该只是合并(或连接),不像其他问题和/或它们不涉及多个表。另请注意,表 soldParts Column2 没有任何价值。
【问题讨论】:
-
电机 2 和电机 2 CCDD44 不是同一行...
-
您确定 UNION 是正确的选择吗?这更像是你在左外连接之后——
SELECT a.part, b.vin FROM soldparts AS a LEFT OUTER JOIN vinData AS b ON a.part = b.part?语义有点可疑。一个给定的零件通常可以为多辆汽车出售,但您的数据并未显示这一点,同样的评论也适用于您的 UNION 配方。
标签: mysql sql select duplicates union