获取最新的SQL查询澄清

获取最新的SQL查询澄清,sql,Sql,我从该线程中窃取了以下查询: 选择m1* 从消息m1向左加入消息m2 ON(m1.name=m2.name和m1.id

我从该线程中窃取了以下查询:

选择m1*
从消息m1向左加入消息m2
ON(m1.name=m2.name和m1.id
有人能帮我理解一下
和m1.id
是如何返回正确的结果的/我认为应该是
和m1.id>m2.id
,它们不会返回正确的结果


我有点想知道,从技术上讲,id应该更大。

考虑到m2.id为NULL的
,您正在寻找不加入的实例

考虑以下id对:

m1_id  m2_id
1      1
2      2
3      3
使用
m1.id
而不使用您的
,其中
标准可以让您:

m1_id  m2_id
1      2
1      3
2      3
3      NULL
  • 1不小于1,但小于2和3,因此1将连接到多个记录
  • 2不小于1或2,但小于3,因此2与1合并 记录
  • 3不小于任何记录,因此它不会加入。信息技术 返回
    NULL
    ,这是您在应用程序中查找的标准
    其中
    子句
m1_id  m2_id
1      2
1      3
2      3
3      NULL