加一个group by语句
select * from volume v LEFT JOIN  chapter c oN v.firstorderid<=c.orderid group by firstorderid 这样试试看,

解决方案 »

  1.   

    最好有数据例子,不是太明白你的意思 这样用left join 还用<=的查询是很少见的,估计不是你需要的
      

  2.   

    chapter(章节)表:
    orderid
    1
    2
    3(以上为第一卷)
    4
    5(以上为第二卷)
    6(以下为第三卷)

    volume(卷)表:
    firstorderid——volume
    1——“第一卷:xx”
    4——“第二卷:xx”
    6——“第三卷:xx”
    。现在要读取orderid为5的章节的卷
      

  3.   

    这样用left join 还用<=的查询是很少见的,估计不是你需要的
    -------------------------
    对,我觉得只能这样,而且光<=还不行,还得加上order by 和limit 1,这样才能选择它所属的那个。这样会不会麻烦了?
      

  4.   

    你这个的话,这样: select * from volume where firstorderid<5 order by firstorderid desc limit 1;
      

  5.   

    哦,写错了,应该是<=select * from volume where firstorderid<=5 order by firstorderid desc limit 1;
      

  6.   

    这样就得另起一个mysql查询了。我是想关联在里面查询。否则的话,用到的地方太多,效率容易低下。
      

  7.   

    什么叫另起一个查询?不是已经得到你要的了吗?如果需要根据这个结果再做查询,可以使用子查询。
    如果版本低,子查询不能用,那需要知道你别的表和chapter的关联方式,给出结构来才能说话。
      

  8.   

    用关联查询的话,只需要在查询chpater的同时,就可以查出volume的值。而另外一个查询语句,就得在程序上再运行一次,分开了,所以麻烦一些。