首页 > 求大拿讲解一个thinkphp下sql的写法

求大拿讲解一个thinkphp下sql的写法

表a
id menu
1 1,3
2 2,3

表b
id name
1 鱼香肉丝
2 宫保鸡丁
3 红烧肉

现在想查询输出如下
1 鱼香肉丝,红烧肉
2 宫保鸡丁,红烧肉

求解在tp下这个sql该怎么写,测试了两天了,还是没写对,求大拿帮帮忙,小弟谢过!!


题主提供表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();

手机码的 没测试 如果有问题 大家帮忙改一下 最近没法上网? 谢谢


表a的menu值不符合mysql的原子性,只能当作字符串查询,不能用做关联查询。


这个没法写吧,你的menu是一个集合 没法连接查询 只能循环获取!


使用join()方法。如果SQL语句比较长,我都习惯先写出原生SQL,再用tp方法来组,你实在在会用join方法,直接写用query()执行原生SQL。

【热门文章】
【热门文章】