解决方案 »
- mysql distinct 出相同记录
- 请教下如何应用join
- MYSQL的查询为何比ACCESS慢这么多
- 关于mysql建表bat批处理的问题
- mysql的连接问题,请教下高手
- 下载了一个mysql administrator但是不知道怎么用
- mysql无法启动???高分求助
- 一个access表一万条记录,想转到Mysql下(Mysql在Linux下)用什么方法和什么语言来做好?
- insert update的唯一性
- 【求助】从A库提取的mixed格式的binlog,有没有办法把sql操作还原到新安装的B库上?
- 一个表中的多条数据相加与另一个表中的总价向比较大小
- mysql集群上如何创建表?
where dept_parent='11');
Empty set (0.36 sec)mysql>问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
`DEPT_ID` int(11) NOT NULL auto_increment,
`DEPT_NAME` varchar(50) NOT NULL default '',
`TEL_NO` varchar(50) NOT NULL default '',
`FAX_NO` varchar(50) NOT NULL default '',
`DEPT_NO` varchar(200) NOT NULL default '0',
`DEPT_PARENT` int(11) NOT NULL default '0',
`DEPT_FUNC` text NOT NULL,
KEY `DEPT_ID` (`DEPT_ID`),
KEY `DEPT_NO` (`DEPT_NO`);第二张表:RCJG_INFO,字段分别为:
`RCJG_ID` int(11) NOT NULL auto_increment,
`DEPT_ID` int(11) NOT NULL default '0',
`CHECK_UNIT` varchar(200) default NULL,
`TYPE_ID` int(4) default NULL,
`FR` varchar(100) default NULL,
`CHECK_DATE` varchar(200) default NULL,
`TEL` varchar(200) default NULL,
`ADDRESS` varchar(200) default NULL,
`CHECK_WHO` varchar(200) default NULL,
`CHECK_RESULT` char(1) default '',
`CHECK_PROBLEM` text,
`XQZG_DATE` varchar(200) default NULL,
`ZGWC_DATE` varchar(200) default NULL,
`ZGJG` char(1) default '',
`ZGWT` text,
`MEMO` varchar(255) default NULL,
`PROVIDER` varchar(200) default NULL,
PRIMARY KEY (`RCJG_ID`),
UNIQUE KEY `RCJG_ID0` (`RCJG_ID`)在department表中,dept_parent字段代表上级部门,dept_id为每个部门编号,现想从RCJG_INFO表中找到一个大部门中所有小部门的相关记录,我利用Navicat 8 for MySQL进行查询,实际查询语句如下:SELECT * from rcjg_info where rcjg_info.DEPT_ID IN (select department.dept_id from department where department.dept_parent ='11');提示错误:[Err] 1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select department.dept_id from department where department.dept修改查询语句,修改的位置也就是括号中的引号,具体为:
SELECT * from rcjg_info where rcjg_info.DEPT_ID IN ('select department.dept_id from department where department.dept_parent =11');
查询成功,但查询结果为0。以上就是查询的详细环境,实在是不知错误在哪里,还请指教!
加了引号肯定不对,IN('***'),它把中间的串当成一个值了。
你不妨用``括起来试试:
select * from rcjg_info where rcjg_info.`DEPT_ID` IN (select department.`DEPT_ID` from department where department.`DEPT_PARENT` =11)
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
on a.DEPT_ID=b.DEPT_ID
where b.dept_parent ='11'