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。
我试着搜索帖子,也没有任何结果,可能是我用词不对。
我需要 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。