我认为这更清楚:
"SELECT * FROM t1,t2 WHERE t2.foreignID = t1.id "
而不是带有JOIN的查询。
是否有关于何时使用这些或其他的规格?
由于
答案 0 :(得分:2)
就个人而言,我更喜欢
的明确性SELECT t1.*, t2.*
FROM t1
JOIN t2 ON t1.id = t2.foreignID
我想确切了解我的JOIN
条件是什么,并且我使用WHERE
来进一步过滤结果(当前年份,仅限某个用户等)。在这样的简单查询中应该没关系,但肯定会有助于更长,更复杂的查询。
对于我来说,对于较短的查询使用一种样式而对于较长的查询则使用不同的样式是没有意义的。通常,简单的问题很快就变成了复杂的查询。
答案 1 :(得分:0)
这是一个笛卡尔连接,实际上与内连接非常非常不同。超过99.99%的时间,您将得到相同的结果。但是边缘情况会慢得多,或者可能会产生额外的行。但是,当您添加左连接时,您更有可能遇到解析问题。 MySQL文档给出了一些解释,但并不多。不同之处在于查询优化器如何选择如何扫描表。
当您开始在WHERE
子句中添加其他条件时,此格式也会变得混乱。