【问题标题】:MySQL join query for 2 tables: incorrect return2个表的MySQL连接查询:返回不正确
【发布时间】:2021-02-24 17:00:39
【问题描述】:

我尝试搜索帖子,也没有任何结果,也许我没有使用正确的词。

我需要 MySQL (5.5.62) 中的解决方案。

我有两张桌子

+------------+----------+---------------+
| Ln         | Ln1      | Cn            |
+------------+----------+---------------+
| 17149      | E.W.T.N. | 1400-1-385171 |
| 24210      | C.A.T.R. | 1400-1-385171 |
+------------+----------+---------------+
2 rows in set


+---------------+------------+-----------+
| Nm            | Ln         | Ln1       |
+---------------+------------+-----------+
| 1400-1-385171 | 35955      | C.E.S.N.  |
| 1400-1-385171 | 35955      | C.E.S.N.  |
+---------------+------------+-----------+
2 rows in set

我需要做一个选择它会返回

+------------+----------+---------------+
| Ln         | Ln1      | Cn            |
+------------+----------+---------------+
| 17149      | E.W.T.N. | 1400-1-385171 |
| 24210      | C.A.T.R. | 1400-1-385171 |
| 35955      | C.E.S.N. | 1400-1-385171 |
+------------+----------+---------------+

我试过这个查询

mysql> SELECT
    Ln,
    Ln1,
    Cn
FROM
    `tbl_1` t
JOIN `tbl_2` m ON t.Cn= m.Nm
WHERE
    Cn IN ('1400-1-385171')
GROUP BY
    Ln
ORDER BY
    Ln ASC;

但回报是

+------------+----------+---------------+
| Ln         | Ln1      | Cn            |
+------------+----------+---------------+
| 17149      | E.W.T.N. | 1400-1-385171 |
| 24210      | C.A.T.R. | 1400-1-385171 |
+------------+----------+---------------+
2 rows in set

如何解决这个问题?

【问题讨论】:

  • 您应该阅读 SQL 教程以了解 JOINUNION 之间的区别。

标签: mysql join left-join inner-join right-join


【解决方案1】:

听起来您需要将两个结果集UNION 合二为一:

SELECT  Ln,
        Ln1,
        Cn
  FROM  `tbl_1`
UNION
SELECT  Ln,
        Ln1,
        Nm
  FROM  `tbl_2`;

UNION 将两个结果集连接在一起,就好像它们是一个表一样。这结合了两个表的结果。

使用 UNION 而不是 UNION ALL 将导致从组合结果集中删除完全相同的重复项。

更多关于如何使用UNION的信息在官方文档here中。

【讨论】:

  • 您可能想补充一点关于JOIN 本质上如何将第二个表作为列添加到第一个表,而不是行。否则你就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 2020-04-23
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多