【发布时间】:2013-11-30 20:18:44
【问题描述】:
我有两张简单的表格,一张名为itineraries 包含假期行程的详细信息,另一张名为users 包含用户的详细信息。其他用户创建行程,用户可以复制自己的行程并添加旅行社,所以copy_from_id是来自users.id的原始创建用户的ID。
我已使用以下查询将itineraries.user_id 加入users.id,完美运行:
SELECT
itineraries.travel_agent_id,
itineraries.copied_from_id,
itineraries.user_id,
users.full_name,
users.username
FROM `gadabouting_gadabouting_production`.`itineraries`
INNER JOIN `gadabouting_gadabouting_production`.`users` ON itineraries.user_id=users.id
WHERE itineraries.travel_agent_id='253'
给我以下输出:
+-----------------+------------------+---------+-------------+-------------+
| travel_agent_id | original_creator | user_id | full_name | username |
| 253 | 501 | 1465 | John Smithy | j.smithy |
| 253 | 501 | 1465 | John Smithy | j.smithy |
| 253 | 501 | 1474 | Ben Stockes | ben.stockes |
+-----------------+------------------+---------+-------------+-------------+
(travel_agent_id 和 original_creator 列与 users.id 相同)。
我现在要做的是将itineraries.travel_agent_id 和itineraries.original creator 映射到users.full_name 和users.username 列(full_name 和username 列打印在每个travel_agent_id 旁边和original_creator 列,但我就是不知道该怎么做。我已经花了好几个小时在上面,但无法理解它。我需要做更多的连接吗?
我查看了其他几个关于多个联接的 SO 问题,但据我所知,它们都没有涵盖与我在同一列上一次又一次“返回”的过程想在这里做。
这可能吗?非常感谢任何帮助!
谢谢
【问题讨论】:
-
需要每个实体/关系有一个单独的连接。像 SQL Server 这样的一些系统有 CTE,但它们用于递归查询,而不仅仅是希望加入多个关系的查询。
标签: mysql sql join inner-join