での声明私は、このSQLクエリを持っている:は、ネストされた「どこで」クエリ
select sum(qty) as 'total' from `sales_flat_quote_item`
where item_id not in (
select item_id from `sales_flat_quote_item_option`
where item_id in (
select item_id from `sales_flat_quote_item`
where quote_id = 12670
)
and code = 'is_gift'
)
and quote_id = 12670 and parent_item_id is null
私の仕事は、JOIN句を使用して、このクエリを作成しています。よく質問自体は非常に奇妙です。 sales_flat_quote_item
は、クエリとサブクエリの両方で使用されます。これはいくつかの効率的な問題を引き起こす。
私はSQLのエキスパートではないので、私はあなたに尋ねています。私は自分自身でネストしたselect
クエリの1つのlvlを処理できますが、この状況で何をすべきかわかりません。
我々は、MySQL DBエンジンvを使用して5.1
私はこのようにそれを作ることができました:。
select A.qty, A.item_id from `sales_flat_quote_item` as A
where A.item_id not in
(
select B.item_id from
`sales_flat_quote_item_option` as B
inner join `sales_flat_quote_item` as C
on C.item_id = B.item_id
where B.code = 'is_gift' and
C.quote_id = 834
)
and A.quote_id = 834 and A.parent_item_id is null
は、任意のサブクエリを使用せずにそれを作るために、それは可能ですか?
よく '(前回の結果セット)のitem_idとcode = 'is_gift''がnullを返す\' sales_flat_quote_item_option \ 'からitem_idを選択してください... – Ventus
そのままそのまま実行しないと教えてください。以前の結果セットは私が「前のクエリの結果を得て、ここに置く」と言っていました。 – JonVD
私はあなたが知って遅れていない;)私はちょうどいくつかの領域を節約するためにあなたのコードを貼り付ける。 2番目のレベルのクエリはnullを返すquote_id = 12670 :) – Ventus