mysql - 使用不同的列名连接 MySQL 中的两个表

标签 mysql join

我不太擅长在 mysql 中连接表,我还在学习中, 所以我想问一下,在连接两个表时....

我有两张 table 因此,对于第一个表,我想在第二个表中加入它的两列(id 和路径)。

但是在第二个表上没有列名 id 和 path,有一个列名 pathid & value。 pathid列的字段与id相同。

看起来像这样。

第一张 table

| id | path        | 
---------------------
|  1 | country/usa |     
|  2 | country/jpn |    
|  3 | country/kor |

第二张 table

| pathid | value  |
-------------------
|  3     | 500    |    
|  1     | 10000  |    
|  2     | 2000   |

所以在第一个表上,它表示美国的 id 是 1,日本是 2,韩国是 3。 在 table 上它说 for pathid 没有。 3(这是韩国的 ID)值为 500 等等。

我希望它看起来像这样。因此,路径将在第二个表上加入其相应的值。我怎样才能在 mysql 上执行此操作?谢谢你

期望的结果

| id | path         | value  |
------------------------------
|  1 | country/usa  | 10000  |    
|  2 | country/jpn  | 2000   |    
|  3 | country/kor  | 500    |

最佳答案

无论列名如何,只要数据类型匹配,您就可以对列进行联接。

SELECT id, path, value
FROM firstTable, secondTable
WHERE id = pathid

如果两个表中的列名相同,则需要使用别名来限定名称。假设 id 的列名在两个表中相同,那么每当您使用 id 时,您都应该说明您指的是哪个表。否则它会提示歧义。

SELECT s.id, path, value
FROM firstTable f, secondTable s
WHERE f.id = s.pathid

请注意,我在选择的其他列上省略了 s.,只要第二个表没有同名的列,它就会工作。

关于mysql - 使用不同的列名连接 MySQL 中的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772252/

相关文章:

MySQL,如何在Mac终端中执行 "sudo kill -9 [PID]"

mysql - 两个表之间的一对多关系 Spring boot JPA 不起作用

php - mysql真正的转义字符串不允许插入数据

mysql - 如何在Linux中运行允许小写表名的MySQL查询以及包含驼峰式大小写表名的查询?

MySQL - 加入有效日期数据

用于 google appengine 访问的 php 包装库

mysql - 不加入时 SQL 性能受到影响

sql - 带通配符的慢连接查询

Mysql LEFT Join查询在添加Count() mysql函数时只返回一行

MySQL(版本 5.5): Why `JOIN` is faster than `IN` clause?