从返回重复行的两个表中选择SQL查询


SQL query selecting from two tables returning duplicate rows

我正在尝试运行此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

它返回了正确的结果,但显示了同一行的倍数

尝试选择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

为了快速修复,您可以使用SELECT DISTINCT。不过,通常情况下,重复提示数据库和/或联接条件存在问题。因此,请确保表中没有重复项,并且连接条件正确。