我很难理解为什么LEFT JOIN
/要IS NULL
消除一个表而不是另一个表中的记录。这是一个例子
SELECT l.id, l.value
FROM t_left l
LEFT JOIN t_right r
ON r.value = l.value
WHERE r.value IS NULL
为什么要r.value = NULL
消除记录?我不理解
。我知道我缺少一些非常基本的东西,但目前我还无法弄清楚那个基本的东西。如果有人向我详细解释,我将不胜感激。
我想要一个非常基本的解释。
这可以用以下解释
mysql> select * from table1 ;
+------+------+
| id | val |
+------+------+
| 1 | 10 |
| 2 | 30 |
| 3 | 40 |
+------+------+
3 rows in set (0.00 sec)
mysql> select * from table2 ;
+------+------+
| id | t1id |
+------+------+
| 1 | 1 |
| 2 | 2 |
+------+------+
2 rows in set (0.00 sec)
这里 table1.id <-> table2.t1id
现在,当我们left join
使用连接键进行操作时,如果左边的表是table1,那么它将从table1获取所有数据,并且在table2的不匹配记录中将其设置为null
mysql> select t1.* , t2.t1id from table1 t1
left join table2 t2 on t2.t1id = t1.id ;
+------+------+------+
| id | val | t1id |
+------+------+------+
| 1 | 10 | 1 |
| 2 | 30 | 2 |
| 3 | 40 | NULL |
+------+------+------+
3 rows in set (0.00 sec)
看到table1.id = 3在table2中没有值,因此将其设置为null当您应用where条件时,它将进行进一步的过滤
mysql> select t1.* , t2.t1id from table1 t1
left join table2 t2 on t2.t1id = t1.id where t2.t1id is null;
+------+------+------+
| id | val | t1id |
+------+------+------+
| 3 | 40 | NULL |
+------+------+------+
1 row in set (0.00 sec)
问题内容: table1 (id, name) table2 (id, name) 询问: 问题答案: SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL 问 :这是怎么回事? 答 :从概念上讲,我们从中选择所有行,并为每一行尝试在其中找到具有相同值的行。如果没有这
问题内容: 我正在尝试通过任务在《企业指南》中执行此操作,否则,我将仅使用数据步骤。 在数据步骤中,这将是: 问题答案: 这是一种方法。当然还有很多其他的。
问题内容: 我有以下两个表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或(感谢WOPR) (忽略这一点,正如其他人所说的那样,通常最好只选择所需的列,而不是’ ‘)
问题内容: 我有以下两个SQL表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 任何帮助将非常感激。 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或者(由于Alterlife) 或(感谢WOPR) (如其他人所说,忽略它通常最好只选择想要的列
我有两个表,一个有212,000条记录(不推荐使用的记录),另一个有10,500,000条记录 在删除记录之前使用外部联接有意义吗?我在想,如果可能的话,这可以帮助我跟踪被删除的内容
我想从Laravel 5.1中其他表中不存在的表中获取所有记录。 我知道如何在核心PHP中做到这一点,它与下面的代码工作正常 模型 但是当我尝试在Laravel中使用以下代码时, 然后它给了我这个错误 调用未定义的方法Illumb\Database\Query\Builder::table()