0

私は有名なカートのために自分の機能を転がしています。これが私の質問です:

    SELECT d.product, d.product_id, p.price FROM cscart_product_descriptions AS d, cscart_product_prices AS p WHERE d.product_id IN (
SELECT product_id FROM cscart_products WHERE product_code IN (
SELECT product_id FROM cscart_range WHERE range_name IN (
SELECT range_name FROM cscart_range WHERE product_id = '0140885'
)))

最初の選択からproduct_prices関連の選択を削除すると、期待どおりに3つのアイテムが返されます。価格を含めて実行すると、4,500件の結果が得られます。

私はこれが参加の問題であることを認識しています、私はそれを修正する方法がわからないだけです。

乾杯!

4

2 に答える 2

1

cscart_product_pricesテーブルとの相互結合を実行します。

あなたはこのようなことを試すことができます:

 select a.*,p.price from (
      SELECT d.product, d.product_id 
      FROM cscart_product_descriptions AS d 
      WHERE d.product_id IN (
         SELECT product_id FROM cscart_products WHERE product_code IN (
         SELECT product_id FROM cscart_range WHERE range_name IN (
         SELECT range_name FROM cscart_range WHERE product_id = '0140885'
         )))a
join cscart_product_prices AS p
on p.product_id=a.product_id
于 2012-10-01T09:49:23.910 に答える
0

また、結合を使用してこのクエリを試してください-

SELECT
  d.product, d.product_id, p.price
FROM
  cscart_product_descriptions d
JOIN cscart_products p
  ON p.product_id = d.product_id 
JOIN cscart_range r1
  ON r1.product_id = p.product_code
JOIN cscart_range r2
  ON r2.range_name = p.range_name
WHERE r2.product_id = '0140885'
于 2012-10-01T10:01:13.250 に答える