如何将表连接在一起 - SQL
Posted
技术标签:
【中文标题】如何将表连接在一起 - SQL【英文标题】:How to join tables together - SQL 【发布时间】:2015-04-29 09:44:00 【问题描述】:这是一个 SQL 问题
我需要使用内连接语法将两个表连接在一起。一个命名为条目,另一个命名为奖品。我需要列出event_id, horse_id, place, money
。
ENTRY (TABLE NAME)
COLUMNS IN TABLE ENTRY:
Event_id,
Horse_id
Place
PRIZE (TABLE NAME)
COLUMNS IN TABLE PRIZE:
Event_id,
Place,
Money
这是我所知道的,我无法理解它。
SELECT event_id, horse_id, place
FROM ENTRY INNER JOIN PRIZE
ON ENTRY.money = PRIZE.money
谢谢
【问题讨论】:
【参考方案1】:SELECT e.Event_id, e.Horse_id, e.place, p.money
FROM ENTRY e join Prize p
ON e.Event_id = p.Event_id
where e.place = p.place;
e 和 p 用作表的别名,以避免由于表名过长而导致 sql 不可读。
使用 e。或 p。您将为该表选择字段,因为可能两个表都有同名的字段,因此执行语句时会出现问题
我添加了 e.place = p.place,因为如果不这样做,您将获得与每个奖项匹配的每个事件的每个位置的结果
例如你会得到 赛事 1 马 1 名 1 奖品 1 赛事 1 马 1 名 1 奖品 2 赛事 1 马 1 名 1 奖品 3 赛事 1 马 1 名 1 奖品 4 等等...直到您获得所有奖品,并且对于每个条目来说这将是相同的,假设奖品的事件等于条目的事件
【讨论】:
我认为您需要为每场比赛的每个位置获得赛事、马匹、位置和奖品> 您应该在答案中添加解释。【参考方案2】:你应该使用别名来避免歧义
select
e.event_id,
e.horse_id,
e.place,
p.Money
from ENTRY e
join PRIZE p on p.event_id = e.event_id
【讨论】:
以上是关于如何将表连接在一起 - SQL的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL 中使用多个连接时,将所有内容连接到表 A 或将表 A 连接到表 B、表 B 到表 C 等是不是更快? [复制]