MySql内部连接返回所有结果,如果它是离开或交叉连接

MySql内部连接返回所有结果,如果它是离开或交叉连接

问题描述:

我有一个简单的查询,它没有提供所需的结果。查询如下MySql内部连接返回所有结果,如果它是离开或交叉连接

select * 
from friends_nudges a 
    INNER JOIN user_friends b 
     ON a.user_id = b.user_id 
where a.user_id = 104 and 
     nudge_sent = 1 
order by nudge_sent_time asc 

不知何故此查询返回两个表的所有结果。

+0

分离条件并执行查询,比如你只是在进行连接时排除where条件...... –

+0

@gaurav为什么不指定需要显示的列?而不是“*”全部...... – bonCodigo

+0

你可以发布每个表的一些样本数据和期望的结果吗? – Taryn

试试这个请:

select a.col, b.col -- specify accordingly 
from friends_nudges a 
    INNER JOIN user_friends b 
     ON a.user_id = b.user_id 
     AND a.user_id = 104 
     AND a.nudge_sent = 1 -- where does nudge_Sent belong to? a or b? 
order by a.nudge_sent_time asc -- where does this column belong to? 

我很抱歉,我的错...... user_id列是不是在这两个表的主键列,这就是为什么如此多的记录要来。因此,基本的首要检查点是:永远不要忘记基本规则。所有连接通常应该针对主键和外键进行。