2016-12-14 73 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柱注意到,結果兩次,有一個冗餘數據。我已經嘗試把條件組,但我有錯誤ORA-00979:不是一個GROUP BY表達式。 希望有人能幫助我這個情況,並預先感謝您

回答

0

你沒有指定哪個DBMS您使用,所以你需要測試這種解決方案

的simples,以避免重複的方法是:

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'