Php 如何使用附加条件sql选择重复行

Php 如何使用附加条件sql选择重复行,php,sql,select,where-clause,Php,Sql,Select,Where Clause,我想选择所有与特定修复id匹配的重复记录 *------*-------------*---------* | id time_stamp | fix_id | *------*-------------*---------* | 1 | 790 | 5679 | | 2 | 1000 | 245679 | | 3 | 1000 | 245679 | | 4 | 12 | 245679

我想选择所有与特定修复id匹配的重复记录

*------*-------------*---------*
|  id    time_stamp  | fix_id  |
*------*-------------*---------*
|  1   |   790       |  5679   |
|  2   |   1000      |  245679 |
|  3   |   1000      |  245679 |
|  4   |   12        |  245679 |
|  5   |   790       |  5679   |
*------*-------------*---------*
我想返回id 2和3,我已经用下面的代码尝试过了,但是它返回了2、3和4所有具有相同修复id的记录

SELECT *
FROM odds
WHERE time_stamp IN (SELECT time_stamp
                  FROM odds 
                  GROUP BY time_stamp
                  HAVING COUNT(time_stamp) > 1) and fix_id='245679'
这样做:

    SELECT *
    FROM odds
    a inner join (SELECT time_stamp, fix_id
                      FROM odds 
                      GROUP BY time_stamp, fix_id
                      HAVING COUNT(*) > 1) b on a.fix_id = b.fix_id and a.time_stamp = b.time_stamp 
WHERE a.fix_id='245679'
我建议使用“不存在”:


在子查询中使用聚合是一个坏习惯,不管是否存在聚合都会起作用。聚合需要处理所有数据,而EXISTS/NOT EXISTS可以在第一个匹配记录处停止。

我收到错误1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第3行“内部连接选择时间戳,修复不一致的id”附近使用的正确语法。同样,我用谷歌搜索它,发现内部连接应该在何处之前,但我不确定如何绝对,我没有借口。对不起,修好了
SELECT o.*
FROM odds o
WHERE EXISTS (SELECT 1
              FROM odds o2
              WHERE o2.time_stamp = o.time_stamp AND
                    o2.fix_id = o.fix_id AND
                    o2.id <> o.id
             )
WHERE a.fix_id = 245679;