2014-10-20 72 views
0

我試圖運行該SQL查詢選擇:SQL查詢從兩個表返回重複行

SELECT t.*, tu.*, t.contact_name as contact_name, 
t.contact_email as contact_email, t.ticketnumber as ticketnumber, 
t.subject as subject 
FROM tickets t, ticket_updates tu 
WHERE t.ticketnumber = tu.ticketnumber 
AND tu.type = 'update' AND tu.customer <> 'Y' 
AND t.status = 'Awaiting Customer' AND tu.datetime <= '2014-10-18 16:26:00' 
order by tu.datetime DESC LIMIT 0,5 

它返回正確的結果,但在同一行

+0

它接縫門票和ticket_updates之間的關係是主從,所以如果你得到同樣的相同的結果,你可能在子表中相同的行。 – 2014-10-20 15:49:12

回答

1

嘗試其顯示多個選擇DISTINCT:

SELECT DISTINCT t.*, tu.*... 

或者你可以嘗試一個GROUP BY:

SELECT t.*, tu.*, t.contact_name as contact_name, t.contact_email as contact_email, 
t.ticketnumber as ticketnumber, t.subject as subject 
    FROM tickets t, ticket_updates tu 
    WHERE t.ticketnumber = tu.ticketnumber AND 
    tu.type = 'update' AND tu.customer <> 'Y' AND 
    t.status = 'Awaiting Customer' AND 
    tu.datetime <= '2014-10-18 16:26:00' 
    GROUP BY tu.`id` 
    order by tu.datetime DESC LIMIT 0,5 
+0

使用DISTINCT仍返回在ticket_updates表相同 – user3843997 2014-10-20 15:32:31

+0

有多個排在門票表 – user3843997 2014-10-20 15:32:57

+0

每一行在這種情況下,'GROUP BY tu.id'應該工作 – AnchovyLegend 2014-10-20 15:37:36

0

爲了快速解決,您可以使用SELECT DISTINCT。 通常,重複是數據庫和/或連接條件存在問題的提示。所以請確保表中沒有重複項,並且連接條件是正確的。