sql - 返回集没有来自内连接的重复项?

时间:2015-11-26 00:46:48

标签: mysql

创建模拟服务台票务服务。

我有一个ticket表,其中包含客户创建的所有票证。 我有一张works_on表,其中包含经理声称并正在处理的所有门票。

在这两个表格中,我都有customerid来识别故障单的所有者。

在客户菜单中,他们可以在ticket表格中检查他们创建的所有故障单,无论它们是否已打开,或者在works_on表中进行处理。

下面我的代码给了我两张桌子的同一张票。我只想看一次票。我怎么能这样做?

SELECT * FROM ticket
INNER JOIN works_on
ON ticket.custid = works_on.customerid

3 个答案:

答案 0 :(得分:0)

美好的一天,

尝试使用Group By

SELECT * FROM ticket
       INNER JOIN works_on
       ON ticket.custid = works_on.customerid
       GROUP BY ticket.custid

您也可以尝试使用DISTINCT

  

SELECT DISTINCT语句用于仅返回distinct   (不同的)值

答案 1 :(得分:0)

{
     "people":[
        {"firstName":"Hasan Sait", "lastName":"Arslan", "email":"hasan.sait.arslan@gmail.com"}]
}

这会将结果分组到客户ID相同的位置。

如果没有,则将select修改为SELECT DISTINCT

答案 2 :(得分:0)

您正在加入错误的列。当您加入customerid时,它会查找客户的所有票证以及该客户的所有works_on行,并在它们之间创建交叉产品。您应该加入票证ID,这样您就可以获得每张票证及其相应的works_on行。

SELECT *
FROM ticket AS t
INNER JOIN works_on AS w ON t.ticket_id = w.ticket_id
WHERE t.custid = :customer