今天试了一下 想用表A left join 表B ON A.id IN (B.aids) 结果只有aids字串的第一个id连接成功  另外请问一下 left join 一定要加on条件吗 最近换了一个工具 结果left join不加条件报错 join不会

解决方案 »

  1.   

    首先,join加不加on条件取决你一的join的写法,如果是
    select
    a.*,b.*
    from a,b;
    这种写法是可以的,这种写法的结果就是笛卡尔集,
    如果是
    select
    a.*,b.*
    from a left join b;
    这种写法是不可以的。
    然后关于你的问题,其实你可以不用join,直接用in
    select
    a.*
    from a where a.id in (select aids from b )
      

  2.   

    知道啦 谢谢 没想到in已经很占资源了还的再加个子查询,为什么同一行的查询结果不能用in来作为筛选条件呢 知道的大神还请不吝赐教
      

  3.   

    你可以 on 1=1, 或者 on true
      

  4.   

    还是不可以啊 查出来只有aids的第一个
      

  5.   

    A left join 表B ON A.id IN (B.aids) B.aids 中的内容是什么? 如果是 "12,32,434,5" 这样,则使用 find_in_set,详细请参见MYSQL官方免费手册。