2016-12-14 3 views
0

私が今やっているプロジェクトは、同じテーブルに2つのマッチメイキングアトリビュートが必要なバーターリングシステムです。 SQLクエリは、以下のようなものです:ダブルデータの結果

SELECT a.itemsid,a.category,a.condition,a.description,a.name,a.seek,a.picture,a.conditionS,a.categoryS,a.studentid 
 
FROM items a 
 
INNER JOIN items b 
 
ON a.name = b.seek 
 
AND b.name = a.seek 
 
WHERE a.name ='database' and b.name='java' 
 
      

クエリの結果は次のとおりです。

enter image description here

あなたはitemsid列に気付いた場合、結果は2倍になるとしてい冗長データ。私はすでに条件でグループを入れてみましたが、エラーがありますORA-00979:GROUP BY式ではありません。 ホープ誰もがこのような状況で私を助けて、ちょうど追加事前

答えて

0

あなたはこのソリューションをテストする必要がありますので、あなたは、あなたが使用しているDBMSた指定されていません...

を繰り返しを避けるための最も簡単な方法は次のとおりです。

SELECT DISTINCT a.itemsid, 
       a.category, 
       a.condition, 
       a.description, 
       a.name, 
       a.seek, 
       a.picture, 
       a.conditionS, 
       a.categoryS, 
       a.studentid 
    FROM items a 
INNER JOIN items b 
    ON a.name = b.seek 
AND b.name = a.seek 
WHERE a.name ='database' 
    AND b.name='java' 
0

にありがとうございことができます。

a.itemsid < b.itemsid 

ON句またはWHERE句のいずれかに。

1

することは、この方法を試してください。

SELECT 
    a.itemsid, 
    a.category, 
    a.condition, 
    a.description, 
    a.name, 
    a.seek, 
    a.picture, 
    a.conditionS, 
    a.categoryS, 
    a.studentid 
FROM 
    items a 
INNER JOIN items b ON a.name = b.seek 
AND b.name = a.seek 
AND a.itemsid < b.itemsid 
WHERE 
    a.name = 'database' 
AND b.name = 'java'