【发布时间】:2013-02-24 06:44:17
【问题描述】:
它们返回相同的行数,但我不确定一个是等待发生的事故,还是一个只是“首选方法”:
SELECT duckbill.id, duckbill.pack_size, duckbill.description, duckbill.platypus_id, duckbill.department, duckbill.subdepartment, duckbill.unit_cost, duckbill.unit_list, duckbill.open_qty, duckbill.UPC_code, duckbill.UPC_pack_size, duckbill.crv_id, duckbill_platypuss.platypus_item
FROM duckbill
INNER JOIN duckbill_platypuss ON duckbill.platypus_id = duckbill_platypuss.platypus_id
SELECT duckbill.id, duckbill.pack_size, duckbill.description, duckbill.platypus_id, duckbill.department, duckbill.subdepartment, duckbill.unit_cost, duckbill.unit_list, duckbill.open_qty, duckbill.UPC_code, duckbill.UPC_pack_size, duckbill.crv_id, duckbill_platypuss.platypus_item
FROM duckbill, duckbill_platypuss
WHERE (duckbill.platypus_id = duckbill_platypuss.platypus_id)
【问题讨论】:
-
它们应该是等价的,但我建议使用 ANSI 语法 (
INNER JOIN) 以提高可读性。 -
mysql解析器优化查询;所以从实际的角度来看是一样的。
-
我没有用 MySQL,我用的是祖父的 SQL
-
有一个非常 similar question and answer 对此进行了很好的解释。
-
@MarkWilkins 这看起来像是this question 的副本。微软recommends using explicit the
INNER JOINversion
标签: sql ms-access sql-server-ce inner-join