我已经写了相同的查询作为子查询和自连接。哪些查询更可取?
在这里有一个比另一个有任何明显的争论?
SUBQUERY:
SELECT prod_id, prod_name
FROM products
WHERE vend_id = (SELECT vend_id
FROM products
WHERE prod_id = ‘DTNTR’);
自联接:
SELECT p1.prod_id, p1.prod_name
FROM products p1, products p2
WHERE p1.vend_id = p2.vend_id
AND p2.prod_id = ‘DTNTR’;
那么,对于初学者来说,如果给定产品有多个vend_id,他们会返回不同的结果,我想。我想你可能打算在子查询中使用“IN”,而不是“=”。不过,我可能是错的,我只是刚刚喝上一杯咖啡。 – 2010-06-09 08:39:48
请添加(作为标签)您的数据库引擎。编写查询的最佳方式可能取决于数据库引擎。 – 2010-06-09 08:47:53