SQL 形成多个表格 - 'left join' 与 ','

SQL FORM multiple tables - 'left join' vs ','

什么比较好?为什么?

函数一:

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子句,因为它会先执行。在某些情况下,您应该加入 where 而不是此处。所以我会说功能 a 是你最好的选择。附带一提,我认为您不想在函数 a 中执行左联接,因为您加入的记录多于删除的记录。在函数a中使用INNER JOIN可能会更好更高效。一个好的做法是在删除或更新之前 select。如果你 运行 这些 select 你会得到相同的结果吗?您应该在第一个查询中获得更多结果,因为您使用的是左联接,而第二个查询类似于内部联接。

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