SQL相交,union?

时间:2017-12-03 23:11:11

标签: mysql sql

我有两个表EVENTS和USER

EVENTS有字段“id”,“name”,“date”
USER有1个字段“id”

我希望SQL查询只获取USER中具有匹配ID的事件的所有EVENT名称。换句话说,从USER获取所有id,在EVENTS中找到匹配的id,显示具有这些id的事件的名称。

具体来说,我想在html中显示一个包含所有这些名称的列表

谢谢!

4 个答案:

答案 0 :(得分:1)

您需要为此使用内部联接,为此,您的SQL应如下所示:

SELECT events.id, name, user.id
FROM events
INNER JOIN user ON events.id = user.id;

我还建议不要使用大写字母来表格等。不是因为它有任何技术原因,只是它使查询等更具可读性。

希望这有帮助:)

答案 1 :(得分:0)

使用exists

select e.*
from events e
where exists (select 1 from user u where u.id = e.id);

答案 2 :(得分:0)

  

我想要一个SQL查询来获取所有事件的EVENT名称   在USER中具有匹配ID的内容。

create table EVENTS (id number,name varchar2(20), date1 date);
create table user1(id number);

select u.id,e.name
from 
USER1 u
INNER JOIN
EVENTS e
ON u.id = e.id;
  

换句话说,从USER中获取所有ID,找到匹配的ID' s   在EVENTS中,显示具有这些ID

的事件的名称
select u.id,e.name
from 
USER1 u
LEFT OUTER JOIN
EVENTS e
ON u.id = e.id;

答案 3 :(得分:0)

你可以使用WHERE语句直接使用它

select u.id,e.name
from 
USER u,EVENTS e
where u.id = e.id;