表aid menu1 1,32 2,3
表bid name1 鱼香肉丝2 宫保鸡丁3 红烧肉
现在想查询输出如下1 鱼香肉丝,红烧肉2 宫保鸡丁,红烧肉
求解在tp下这个sql该怎么写,测试了两天了,还是没写对,求大拿帮帮忙,小弟谢过!!
表a的menu值不符合mysql的原子性,只能当作字符串查询,不能用做关联查询。
这个没法写吧,你的menu是一个集合 没法连接查询 只能循环获取!
题主提供表a 一条sql查询好像很难查询(原谅我孤陋寡闻了)
如果表a是这种格式 并且建立id menu唯一的索引
表a id menu 1 1 1 3 2 2 2 3
然后 这条sql应该可以一次查询出来
$a = M("a"); $s1 = $a ->field('a.id, GROUP_CONCAT(b.name) as names') ->join('b ON a.menu=b.id') ->group('a.id') ->select();
手机码的 没测试 如果有问题 大家帮忙改一下 最近没法上网? 谢谢
使用join()方法。如果SQL语句比较长,我都习惯先写出原生SQL,再用tp方法来组,你实在在会用join方法,直接写用query()执行原生SQL。