MySQL 2 个表的连接查询:不正确 return

MySQL join query for 2 tables: incorrect return

我试着搜索帖子,也没有任何结果,可能是我用词不对。

我需要 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

我需要做一个 select 它会 return

+------------+----------+---------------+
| 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;

但是return是

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

如何解决这个问题?

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

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

UNION 将两个结果集连接在一起,就好像它们是一个 table。这结合了 tables.

的结果

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

有关如何使用 UNION 的更多信息,请参阅官方文档 here