免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1545 | 回复: 5
打印 上一主题 下一主题

两个表的查询问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-02 02:51 |只看该作者 |倒序浏览
现在有两个表
表A:
+-------+--------+--------+
|   ID    | NAME | SEX    |
+-------+--------+--------+
|   1     | RAY     |  M      |
+-------+--------+--------+
|   2     | SAM    |  M      |
+-------+--------+--------+
|   3     | MAY    |   F      |
+-------+--------+--------+
|   4     | AMY    |   F      |
+-------+--------+--------+
表B:
+-------+--------+--------+
|   ID    | ADD   |  EMAIL|
+-------+--------+--------+
|   1     | GZ      |  RAY@ |
+-------+--------+--------+
|   2     | SZ      |  SAM@ |
+-------+--------+--------+
先在想查询表A中的没有在表B中出现的行,就是要查询出表A的3,4行。
我在MYSQL中的SQL语句为:
SELECT * FROM A,B WHERE A.ID NOT IN(SELECT * FROM B WHERE B.ID=A.ID)
得到错误提示,请问正确应该怎么写?THX。

论坛徽章:
0
2 [报告]
发表于 2004-05-02 15:40 |只看该作者

两个表的查询问题

try:

SELECT * FROM A,B WHERE A.ID NOT IN(SELECT ID FROM B WHERE B.ID=A.ID)

论坛徽章:
0
3 [报告]
发表于 2004-05-05 15:56 |只看该作者

两个表的查询问题

期待结果,楼上的只能在新版本里执行!

论坛徽章:
0
4 [报告]
发表于 2004-05-06 19:32 |只看该作者

两个表的查询问题

楼主给个结果吧

论坛徽章:
0
5 [报告]
发表于 2004-05-06 23:19 |只看该作者

两个表的查询问题

如果在不支持子查询的MySQL服务器上,可以用“连接”来代替。其实,子查询在被4.1引进以前,一直都是用 Join 来完成这样的任务。而且大部分的子查询都可以用 Join 来很好的完成。

  1. SELECT * FROM A  LEFT JOIN B ON A.ID = B.ID WHERE `ADD` IS NULL
复制代码

论坛徽章:
0
6 [报告]
发表于 2004-05-07 16:18 |只看该作者

两个表的查询问题

多谢各位回复,
Zimoo兄的方法是正确的!
还有另一个查询问题:
比如一个经理管理n个部门的员工,现在有N个经理,所以有表对应经理同部门之间的关系;每个部门有m个员工,有些员工可以跨部门。现在就想查询列表每个经理所管理的员工。SELECE语句的怎样写呢?好象有点象二叉树的遍历,没有头绪啊!LEFT JOIN能嵌多少层啊?这样的子查询效率是否很低?
涉及共三个表。经理对应部门表,员工对应部门表,员工表。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP