什么是更好的?为什么?
功能一:
DELETE a FROM a LEFT JOIN b
ON a.CHROM=b.CHROM AND a.POS=b.POS
功能b:
DELETE a FROM a, b
WHERE a.CHROM=b.CHROM AND a.POS=b.POS
最佳答案
最好加入FROM子句,因为它首先被执行。在某些情况下,您应该在哪里加入,但不能在这里加入。因此,我想说功能a是您最好的选择。顺便说一句,我不希望您在功能a中进行左联接,因为联接的记录要比删除的记录多。在函数a中使用INNER JOIN可能会更好,更有效。一个好的做法是在删除或更新之前进行选择。如果运行这些选择,会得到相同的结果吗?您应该在第一个查询中获得更多结果,因为您使用的是左联接,而第二个查询类似于内部联接。
SELECT a FROM a LEFT JOIN b
ON a.CHROM=b.CHROM AND a.POS=b.POS
SELECT a FROM a, b
WHERE a.CHROM=b.CHROM AND a.POS=b.POS
看看这个答案:
INNER JOIN ON vs WHERE clause
如果需要更好的连接说明,这对我真的很有帮助:
SQL JOIN and different types of JOINs