1

編集:私はここに投稿をそのままにしておきますが、私が本当に達成する必要があったことは再投稿する必要がありました。私は問題を十分に説明しませんでした。まったく別の開始点で再試行した後、必要なクエリを取得することができました。それはここで説明されています。

元の質問: 問題が発生しています。同様のスレッドを調べましたが、このクエリに固有の解決策を見つけることができません。データベースは非常に大きく、groupbyによってデータベースの速度が大幅に低下するようです。

問題は、重複した結果が得られることです。これが重複を引き起こす私のクエリです:

SELECT 
  itpitems.identifier, 
  itpitems.name, 
  itpitems.subtitle, 
  itpitems.description, 
  itpitems.itemimg, 
  itpitems.mainprice, 
  itpitems.upc, 
  itpitems.isbn, 
  itpitems.weight, 
  itpitems.pages, 
  itpitems.publisher, 
  itpitems.medium_abbr, 
  itpitems.medium_desc, 
  itpitems.series_abbr, 
  itpitems.series_desc, 
  itpitems.voicing_desc,
  itpitems.pianolevel_desc,
  itpitems.bandgrade_desc,
  itpitems.category_code,
  itprank.overall_ranking,
  itpitnam.name AS artist,
  itpitnam.type_code 
FROM itpitems 
  INNER JOIN itprank ON ( itprank.item_number = itpitems.identifier ) 
  INNER JOIN itpitnam ON ( itpitems.identifier = itpitnam.item_number ) 
WHERE mainprice >1

結果は実際には完全な重複ではありません。itpitnam.type_codeの結果は、他の方法では重複する結果とは異なります。

クエリの最後にGROUPBYを追加すると、サーバーに過度の負担がかかるため(約300,000レコードを検索します)、他に何ができますか?

これをサブクエリとして書き直すことはできますか?type_codeが変更された2番目のインスタンスを削除する方法がわかりません。

あなたの助けと援助に感謝します。

SELECT DISTINCT itpitems.identifierも試しましたが、同じ結果が得られ、重複がありました(type_codeが唯一の違いでした)。type_codeが変更された2番目のインスタンスは必要ありません。type_codeに複数のインスタンスがあるかどうかに関係なく、識別子ごとに1つの結果が必要です。

4

1 に答える 1

4

出力の例を見ずに、言うのは難しい。DISTINCTしかし、単純なものを追加して、まったく同じクエリを試しましたSELECTか?

SELECT DISTINCT itpitems.identifier, itpitems.name, itpitems.subtitle, itpitems.description, itpitems.itemimg, itpitems.mainprice, itpitems.upc, itpitems.isbn, itpitems.weight, itpitems.pages, itpitems.publisher, itpitems.medium_abbr, itpitems.medium_desc, itpitems.series_abbr, itpitems.series_desc, itpitems.voicing_desc, itpitems.pianolevel_desc, itpitems.bandgrade_desc, itpitems.category_code, itprank.overall_ranking, itpitnam.name AS artist, itpitnam.type_code 
FROM itpitems 
INNER JOIN itprank ON ( itprank.item_number = itpitems.identifier ) 
INNER JOIN itpitnam ON ( itpitems.identifier = itpitnam.item_number ) 
WHERE mainprice >1
于 2013-02-02T02:37:50.700 に答える