Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询失败,出现语法错误_Mysql_Sql - Fatal编程技术网

Mysql 查询失败,出现语法错误

Mysql 查询失败,出现语法错误,mysql,sql,Mysql,Sql,我尝试了以下查询,但未能计算重复项 请帮帮我 SELECT id , Count(id) As theCount FROM ( SELECT e.id , e.cont , e.date , p.fname , p.lname , p.phone_cell

我尝试了以下查询,但未能计算重复项 请帮帮我

   SELECT id
        , Count(id) As theCount
     FROM (
           SELECT e.id
                , e.cont
                , e.date
                , p.fname
                , p.lname
                , p.phone_cell
                , p.phone_home
                , p.email AS Count
             FROM pdata AS p
                , ehistory AS e
            WHERE p.id = e.id
              AND e.date >=  '2007-08-05'
              AND e.date <=  '2019-08-10'
         ) As C
GROUP BY id
  HAVING COUNT Count(id) > 1
       ;
我收到了错误

在“Countid>1”附近使用的语法

我想一切都是对的。如果有什么不对劲,请帮帮我!提前感谢。

您必须删除COUNT word,如下所示

SELECT id, Count(id) As theCount
FROM ( SELECT e.id, e.cont, e.date, p.fname, p.lname, p.phone_cell, p.phone_home, p.email    AS Count
       FROM pdata AS p, ehistory AS e
       WHERE p.id = e.id
       AND e.date >=  '2007-08-05'
       AND e.date <=  '2019-08-10') As C
       GROUP By id
HAVING Count(id) > 1

似乎您使用了两次“COUNT”

试试这个

HAVING COUNT(id) > 1
而不是

HAVING COUNT Count(id) > 1

你正在使用两个计数。用这个代替

      HAVING Count(id) > 1

有两个计数。删除一个:

试试这个:

SELECT 
  id,
  COUNT(id) AS theCount 
FROM
  (SELECT 
    e.id,
    e.cont,
    e.date,
    p.fname,
    p.lname,
    p.phone_cell,
    p.phone_home,
    p.email AS COUNT
  FROM
    pdata AS p,
    ehistory AS e 
  WHERE p.id = e.id 
    AND e.date >= '2007-08-05' 
    AND e.date <= '2019-08-10') AS C 
GROUP BY id 
HAVING COUNT (id) > 1 ;
使用别名:::

SELECT id
        , Count(id) As theCount
     FROM (
           SELECT e.id
                , e.cont
                , e.date
                , p.fname
                , p.lname
                , p.phone_cell
                , p.phone_home
                , p.email AS Count
             FROM pdata AS p
                , ehistory AS e
            WHERE p.id = e.id
              AND e.date >=  '2007-08-05'
              AND e.date <=  '2019-08-10'
         ) As C
GROUP BY id
  HAVING theCount > 1
       ;
尝试下面的查询

SELECT Count(e.id) As theCount
            , e.id
            , e.cont
            , e.date
            , p.fname
            , p.lname
            , p.phone_cell
            , p.phone_home
            , p.email AS Count
         FROM pdata AS p
            , ehistory AS e
        WHERE p.id = e.id
          AND e.date between  '2007-08-05' AND '2019-08-10'
       GROUP BY e.id
       HAVING  theCount > 1;

我在'Countid>1'附近使用了错误语法@aleksey.berezanI很高兴我能帮助你。别忘了接受答案;