sql语句问题,请帮忙。(20分)

C

chinahx

Unregistered / Unconfirmed
GUEST, unregistred user!
sqlDeleteEmployee := 'select department_ID from Employee_Department where '
+'employee_ID = (select ID from employees where '
+'loginname = '''+strSelectedEmployee+''') and department_ID = '
+'(select ID from departments where '
+'Department_name = '''+strSelectedDepartment+''')';
我一直对sql语句不会用,请帮忙检查一下这句话大概错误出现在哪里?谢谢
提示错误:
Token:‘nested select’
 
sql := 'SELECT department_ID FROM Employee_Department WHERE '
+'Employee_ID = (select ID from employees where loginname = ''haha'')';

这一句错在哪里?真搞不懂!我用的是access。
 
“nested select”就是“嵌套的SELECT”,估计是你用的数据库系统不支持嵌套查询吧。
 
支持的,我在access中试过了,没有问题,可是在delphi中却有错误,
我不知道应该怎样写,而且对sql也一直半解,请高手指点,
或者是自己写的带括号的条件sql贴出来一段,我学习学习,谢谢了。
 
试试这个:
sql := 'SELECT department_ID FROM Employee_Department WHERE '
+'Employee_ID = (select ID as Employee_ID from employees where loginname = ''haha'')';

 
还是不行,他说没有可用到的值。
我想我只是对 ‘ 符号不了解的原因:一个字符串型的变量左右加几个 ’
我不了解,如果 有( 的sql我一写就错,不知道原因。
如果您有 代 ( 的sql能否给我看一看?谢谢
 
你的第二个帖子里的sql是怎么回事,是把第一个简写了吗?(并且仍然提示那个错误?)
 
strSQL:='SELECT department_ID FROM Employee_Department WHERE '
+' Employee_ID in (select ID from employees where loginname='''+'haha'+''')';

 
试试WebExplorer的,也许你的字查询的结果为空或多值,那样=就不行,要用IN
 
试一下WebExplore的,你的sql语句格式不正确
 
sqlDeleteEmployee := 'select department_ID from Employee_Department where '
+'employee_ID = (select ID from employees where '
+'loginname = '''+strSelectedEmployee+''') and department_ID IN '
+'(select ID from departments where '
+'Department_name = '''+strSelectedDepartment+''')';
try it !
 
顶部