一个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 则返回空记录。
原始的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 则返回空记录。
改后的语句如下:
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
2. 当第二个 非空时 一切正常,不知是不是 mysql 的一个bug
3. 问题已经解决,方法:在第二个表中插入一条无关紧要的记录.