一个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 则返回空记录。

解决方案 »

  1.   

    把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
      

  2.   

    1. Table的结构没有问题。
      2. 当第二个 非空时 一切正常,不知是不是 mysql 的一个bug
      3. 问题已经解决,方法:在第二个表中插入一条无关紧要的记录.