如何从这两张表中获取所有数据:
Events
cid date
1 1/12/2013
2 2/2/2013
1 5/5/2014
Clients
cid name gender
1 david male
2 ashley female
3 barak male
我想请求使用cid数据获取所有事件,如:
Final
cid date name gender
1 1/12/2013 david male
2 2/2/2013 ashley female
1 5/5/2013 david male
答案 0 :(得分:2)
假设您的要求是SELECT *(为什么),那么您可以将所有先前的答案包装在子查询中。像这样:
select * from
(
SELECT
E.cid,
date,
name,
gender
FROM Events E
LEFT JOIN Clients C
ON E.cid = C.cid) t
祝你好运。
答案 1 :(得分:0)
select * from Events join Clients on Clients.cid = Events.cid;
答案 2 :(得分:0)
SELECT
E.cid,
date,
name,
gender
FROM Events E
LEFT JOIN Clients C
ON E.cid = C.cid
左连接负责处理事件cid
的客户端表中没有条目的位置如果表之间存在参照完整性,并且您可以保证客户端表中至少有一个条目,则可以使用INNER JOIN替换LEFT JOIN。但这完全取决于您拥有的数据以及您的查询约束条件。
除非您确定不排除相关数据,否则永远不要假设INNER JOIN。
答案 3 :(得分:0)
您需要JOIN
表:
select e.cid,
e.date,
c.name,
c.gender
from clients c
inner join events e
on e.cid = c.cid
如果您需要帮助学习联接语法,这里有一个很棒的visual explanation of joins。
我使用INNER JOIN
来连接表,这将返回clients
表中events
表中具有匹配行的所有行。如果您想要返回clients
表中的所有events
而不管LEFT JOIN
表中的哪一行,那么您可以使用{{1}}
答案 4 :(得分:0)
表格以首字母大写
SELECT e.cid, e.date, c.name, c.gender
FROM Events AS e
LEFT JOIN Clients AS c
ON e.cid = c.cid