我已經寫了相同的查詢作爲子查詢和自連接。哪些查詢更可取?
在這裏有一個比另一個有任何明顯的爭論?
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