Mysql 将两个选项组合在一起会选择彼此相邻,而不是在另一个之上
我的MySQL数据库中有以下结构:Mysql 将两个选项组合在一起会选择彼此相邻,而不是在另一个之上,mysql,merge,Mysql,Merge,我的MySQL数据库中有以下结构: +--------------+ +--------------+ | table_1 | | table_2 | +----+---------+ +----+---------+ | id | name | | id | surname | +----+---------+ +----+---------+ | 1 | tbl1_1 | |
+--------------+ +--------------+
| table_1 | | table_2 |
+----+---------+ +----+---------+
| id | name | | id | surname |
+----+---------+ +----+---------+
| 1 | tbl1_1 | | 1 | tbl2_1 |
| 2 | tbl1_2 | | 2 | tbl2_2 |
| 3 | tbl1_3 | | 3 | tbl2_3 |
+----+---------+ +----+---------+
我需要一个返回以下内容的查询:
+----+---------+---------+
| id | name | surname |
+----+---------+---------+
| 2 | tbl1_2 | tbl2_2 |
+----+---------+---------+
我在谷歌上搜索了一下,找到的是UNION,它的功能是:
+----+---------+
| id | name |
+----+---------+
| 2 | tbl1_2 |
| 2 | tbl2_3 |
+----+---------+
这不是我想要的。我需要它们相邻组合,而不是相互重叠。您需要使用一个,连接类型取决于您的要求
SELECT id,name,surname FROM table_1 INNER JOIN table_2 on table_2.id=table_1.id WHERE table_1.id = 2
内部联接将选择两个表中的所有行,只要我们匹配的id列之间存在匹配,即两个表中都存在id,这就是必须执行的操作:
SELECT table_1.id, name, surname FROM table_1, table_2 WHERE table_1.id = 2 AND table_2.id = 2
你能举个例子吗?不,它只选择所有行,我还需要应用WHERE子句。