【发布时间】:2017-01-03 14:36:12
【问题描述】:
希望有人可以在这里帮助我。我有以下两个表:
Table: locations
location_id user_id city state
1 1 Los Angeles CA
2 1 New York NY
3 1 Chicago IL
4 2 Dallas TX
5 3 Denver CO
6 4 Miami FL
7 5 Atlanta GA
Table: events
event_id user_id event_name event_date
1 1 My Event 1 2017-02-01
2 2 My Event 2 2017-03-01
3 3 My Event 3 2017-04-01
4 4 My Event 4 2017-05-01
5 5 My Event 5 2017-06-01
我正在运行以下查询:
SELECT e.event_id, e.user_id, e.event_name, e.event_date,
l.user_id, l.city, l.state
FROM events e
INNER JOIN locations l
ON e.user_id = l.user_id
ORDER BY e.event_date ASC
我试图只获取 events 表中的记录,但还要提取与两个表共有的 user_id 匹配的相应城市和州。输出应该是:
event_id user_id event_name event_date city state
1 1 My Event 1 2017-02-01 Los Angeles CA
2 2 My Event 2 2017-03-01 Dallas TX
3 3 My Event 3 2017-04-01 Denver CO
4 4 My Event 4 2017-05-01 Miami FL
5 5 My Event 5 2017-06-01 Atlanta GA
谁能指出我在 SQL 语句中的错误?
【问题讨论】:
-
user_id = 1 在哪个位置?为什么结果是洛杉矶,为什么不是纽约?
-
只需要第一个,其余与user_id匹配的跳过
-
先定义(按数据)
-
声明中的哪个地方?
-
那不是陈述,而是定义。如果您愿意,可以将其称为业务规则。您、您的经理、项目经理或业务人员应该提出它。除非定义了同一组中记录的顺序,否则“第一”一词没有任何意义。
标签: mysql select join inner-join