gpt4 book ai didi

mysql - 从 MySQL 中的表中选择一列两次

转载 作者:行者123 更新时间:2023-11-29 00:49:51 25 4
gpt4 key购买 nike

我有一个表a,其中存储了用户ID 以及他的出发地和目的地的ID。在 table b 上,我有位置 ID 和地点的具体名称。我想要做的是加入表格,但是 table b 中的 name 列必须使用两次,因为我试图获得 2 个地址。我正在尝试阅读 MySQL,但一直做错了。任何帮助将不胜感激。

      table a
------------------------
| uid | to | from |
------------------------
| 1 | 1 | 2 |
------------------------

table b
---------------
| lid | name |
---------------
| 1 | one |
---------------
| 2 | two |
---------------

/what I'm trying to achieve/
------------------------------------------
|a.uid | a.to | b.name | a.from | b.name |
------------------------------------------
| 1 | 1 | one | 2 | two |
------------------------------------------

最佳答案

你必须加入表 b 两次,并且每次都使用不同的表名 (b1, b2) 使用 as

select *
from a join b as b1 on a.to = b1.lid
join b as b2 on a.from = b2.lid

所以结果是

--------------------------------------------
|a.uid | a.to | b1.name | a.from | b2.name |
--------------------------------------------
| 1 | 1 | one | 2 | two |
--------------------------------------------

但您可能想要的是防止名称冲突 - 如果您从 PHP 调用它 - 然后也重命名列:

select a.*, b1.name as toName, b2.name as fromName
... (rest of the query as above)

关于mysql - 从 MySQL 中的表中选择一列两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com