sql 语名不能得能期望的结果,求解决方法

liangbch 2007-03-06 03:15:26
一个sql 语句,当ts2_assignments 表为空时,总是返回空记录,求解决办法:
原始的sql语名为:
SELECT distinct ts2_project.proj_id,ts2_project.title from ts2_project,ts2_assignments where ( ts2_project.proj_leader_id='5' ) OR ( ts2_project.proj_id=ts2_assignments.proj_id AND ts2_assignments.user_id='5') ORDER by title

将问题简化,改成如下格式能够返加记录:
SELECT distinct ts2_project.proj_id from ts2_project where ts2_project.proj_leader_id='5'

将from ts2_project 改为 from ts2_project,ts2_assignments 则返回空记录。


...全文
290 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbch 2007-03-07
  • 打赏
  • 举报
回复
1. Table的结构没有问题。
2. 当第二个 非空时 一切正常,不知是不是 mysql 的一个bug
3. 问题已经解决,方法:在第二个表中插入一条无关紧要的记录.
懒得去死 2007-03-06
  • 打赏
  • 举报
回复
把你的表结构贴出来看看
CathySun118 2007-03-06
  • 打赏
  • 举报
回复
把where改为左链接吧 left jion
改后的语句如下:
SELECT distinct ts2_project.proj_id,ts2_project.title from ts2_project left join ts2_assignments on ( ts2_project.proj_leader_id='5' ) OR ( ts2_project.proj_id=ts2_assignments.proj_id AND ts2_assignments.user_id='5') ORDER by title

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧