表A:
ID,Name
表B:
ID,Name
现查询表A,想知道表B中有无ID相同的记录,如有则显示有几条,下面语句在mysql中无法执行
select 
ID,
Name,
(select cont(*) from 表B where ID=表A.ID)表B_IDfrom 表A

解决方案 »

  1.   

    错误代码1064-you have an eror in your SQL syntax.Check the manual that corresponds to your MySQL server version for the right syntax to use near'(select count(*) from 表B where ID=表A.ID)'
      

  2.   

    select `ID`,`Name`,
    (select count(*) from 表B where `ID`=表A.`ID`) as `表B_ID` from 表A
      

  3.   

    你的mysql 版本是什么?另外你贴出的语句和报错的信息并不一致!(select cont(*) from 表B where ID=表A.ID)表B_ID
    syntax to use near'(select count(*) from 表B where ID=表A.ID)'建议准确贴出你的语句,这样减少误导。
      

  4.   

    mysql版本是4.0.27-log;
    (select cont(*) from 表B where ID=表A.ID)表B_ID
    syntax to use near'(select count(*) from 表B where ID=表A.ID)'
    上面一句cont(*)写错了,应该是count(*)。
    谢谢!
    就是想实现查询表A时看表B中有无ID相同的纪录。
      

  5.   

    MYSQL 4.1 后才支持 Subqueries 实现相同功能,改为如下语句。
    select 表A.ID,表A.Name,count(表B.ID)
    from 表A left join 表B on 表A.ID=表B.ID
    group by 表A.ID,表A.Name
      

  6.   

    表A中还有字段EmployeeID
    表A:
    ID,Name,EmployeeID
    表C:
    EmployeeID,EmployeeName
    现在想同时列出EmployeeName,达到如下效果:
    ID,Name,count,EmployeeID,EmployeeName
      

  7.   

    你自己加一下不就行了吗?select 表A.ID,表A.Name,count(表B.ID),表C.EmployeeID,表C.EmployeeName
    from 表A inner join 表C on 表A.EmployeeID=表C.EmployeeID
    left join 表B on 表A.ID=表B.ID
    group by 表A.ID,表A.Name,表C.EmployeeID,表C.EmployeeName
      

  8.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  9.   

    4.1才支持子查询
    select  表A.ID,表A.Name,表C.EmployeeID,表C.EmployeeName,count(表B.ID)
    from 表A inner join 表C on 表A.EmployeeID=表C.EmployeeID
    left join 表B on 表A.ID=表B.ID
    group by 表A.ID,表A.Name,表C.EmployeeID,表C.EmployeeName