Thinkphp 联表查询 表名要全名

我有2个表 表1.


表2


已知表2的user_id 查询满足 表2.wb_id=表1.id 表1的内容
阿里云
最佳答案
i 2013年11月15日

  1. $result = M()->table(array('表1'=>'表1缩写','表2'=>'表2缩写'))->field('表1缩写.字段1,表2缩写.字段2')->where('表2.wb_id=表1.id')->select()

复制代码

可以这样select里可以传false, 这样$result会输出sql语句, 可以清晰看到
如果字段都取出来,可以不用表别名..
评论(5) 相关
君鸿2014年09月10日

  1. $result = M()->table(array('表1'=>'表1缩写','表2'=>'表2缩写'))->field('表1缩写.字段1,表2缩写.字段2')->where('表2缩写.wb_id=表1缩写.id')->select()

复制代码
复制代码
复制代码
adocode.com2014年05月27日
不错,给个赞
i2013年11月15日

  1. $result = M()->table(array('表1'=>'表1缩写','表2'=>'表2缩写'))->field('表1缩写.字段1,表2缩写.字段2')->where('表2.wb_id=表1.id')->select()

复制代码
复制代码
复制代码

可以这样select里可以传false, 这样$result会输出sql语句, 可以清晰看到
如果字段都取出来,可以不用表别名..
回复i2013年11月15日
推荐用join组合语句,楼上已经写的很明白了
回复1108942013年11月15日
但是首先要查询出表2的 wb_id 啊 要查询2次啊
回复i2013年11月15日
回复 110894 : 如果先知道表2的wb_id, 再2表一起, 好像就得查2回吧, 木思路, 等大神们来指点.
回复1108942013年11月16日
真的太感谢你了 亲
回复小学生来了2014年12月31日
非常不错的啊,亲!!!
⊿Remix.2013年11月15日
用join链接 就可以。表2wb_id做表1的外键,进行表链接。查一下手册就有的。
JOIN
join 用于数据库的join查询支持
用法 join($join)
参数 join(必须):join操作,支持字符串和数组
返回值 当前模型实例
备注 join方法支持多次调用
使用示例:
$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select();
默认采用LEFT JOIN 方式,如果需要用其他的JOIN方式,可以改成
$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select();
如果join方法的参数用数组的话,只能使用一次join方法,并且不能和字符串方式混合使用。
例如:
join(array(' work ON artist.id = work.artist_id','card ON artist.card_id = card.id'))
1108942013年11月15日
求大家帮忙看下啊
原文地址:https://www.cnblogs.com/caicaizi/p/5213162.html