thinkphp 中一个语法问题 select * from A where roomid in(select roomid from B where accontid=1000)

select*fromAwhereroomidin(selectroomidfromBwhereaccontid=1000)这样的sql语句怎麼写成thinkphp中的查... select * from A where roomid in(select roomid from B where accontid=1000) 这样的sql语句怎麼写成thinkphp中的查询语句呢 thinkphp版本是3.1 我在Mysql使用没有问题,在tp怎麼也不对 打印出来的更是不对,麻烦各位高手帮帮忙 展开
 我来答
那段逝去的过往
2017-01-19 · TA获得超过471个赞
知道小有建树答主
回答量:458
采纳率:83%
帮助的人:313万
展开全部

从3.0版本开始新增了子查询支持,有两种使用方式:

  1. 使用select方法 当select方法的参数为false的时候,表示不进行查询只是返回构建SQL

    $subQuery = $model->field('roomid')->table('tablename')->where(array('accontid' => 1000))->select(false); 

  2. 使用buildSql方法

    $subQuery = $model->field('roomid')->table('tablename')->where(array('accontid' => 1000))->buildSql(); 

  3. 利用子查询进行查询

    $model->table($subQuery.' a')->where()->order()->select()

追问
提示表不存在呀    明明存在表名的,1和2是构建第一个查询,第三一个怎麼把第二个查询的结果带到条件裏面查询呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式