0

複数のフィールドを結合してレコードを削除するステートメントの作成に問題があります。私はまだうまくいかない多くの解決策を検索して見つけました。

orders.profile と orders.qualified の 2 つのテーブルがあります。

結合する単純な 1 つのフィールドではなく、複数のフィールドがあります。基本的に、顧客のニーズに基づいて、プロファイルに保存されているアイテムの一部が地域に基づいて適格でない可能性があるため、それらを削除する必要があります。

これが私が遊んでいるものです。現在、UNKNOWN TABLEエラーが発生しています。最初にテーブル定義からデータベースを削除すると、NO DATABASE SELECTEDエラーが発生します。

DELETE FROM orders.profile
USING orders.profile AS p
LEFT OUTER JOIN orders.qualified AS q
ON p.cust_id = q.cust_id
AND p.job_number = q.job_number
AND p.job_seg = q.job_seg
AND p.zip = q.zip
AND p.carrier_route = q.carrier_route
WHERE p.cust_id = {the cust_id in question}
AND p.job_number = {the job number in question}
and q.qualified = 0;
4

2 に答える 2

1

Holger Brandt からの回答に基づいて、データベースとエイリアスを定義することでこれを機能させることができました。

したがって、クエリは次のようになります。

DELETE orders.p
FROM orders.profile AS p
LEFT OUTER JOIN orders.qualified AS q
ON p.cust_id = q.cust_id
AND p.job_number = q.job_number
AND p.job_seg = q.job_seg
AND p.zip = q.zip
AND p.carrier_route = q.carrier_route
WHERE p.cust_id = {the cust_id in question}
AND p.job_number = {the job number in question}
and q.qualified = 0; 
于 2012-07-11T18:08:53.883 に答える
1

USINGステートメントなしで削除を試してください:

DELETE p FROM
orders.profile AS p
  LEFT OUTER JOIN orders.qualified AS q
  ON p.cust_id = q.cust_id ...

これがうまくいかない場合は、もっと根本的なことが起こっています。

于 2012-07-10T23:51:01.143 に答える