SQL LEFT JOIN不过滤

时间:2017-01-21 18:44:03

标签: mysql sql left-join

我只想返回Event_site_tag_lu表中的事件。但我的声明正在归还所有事件。

活动表

---+
Id |
---+
1  |  
2  |
3  |
---+

Event_site_tag_lu表

---------+
event_id |
---------+
1        |
---------+

我的查询是

SELECT `id` FROM event LEFT JOIN event_site_tag_lu ON event.id = event_site_tag_lu.event_id

3 个答案:

答案 0 :(得分:2)

所以你真的不需要左连接 - 内连接将完成工作。

答案 1 :(得分:1)

将LEFT更改为INNER

LEFT JOIN返回左表中的所有行和匹配

INNER JOIN仅返回匹配

答案 2 :(得分:1)

LEFT JOIN(某些数据库LEFT OUTER JOIN)返回关系中第一个表中的所有行和来自其他表的匹配数据,否则为特定行中的null,表示关系中第二个表的数据

你在寻找什么只是JOIN(INNER JOIN),只会获得两个表中匹配的行

SELECT event_test.* 
FROM   event_test 
       JOIN log 
         ON event_test.id = log.id 

此外,如果您只查看日志中的事件而不是特定数据,您可以编写如下内容

 SELECT DISTINCT id from log

Jsfiddle