mysql - ThinkPHP3.1 多变关联查询

查看:196
本文介绍了mysql - ThinkPHP3.1 多变关联查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

请问我怎么根据日志表的log_id字段取得客户表的name字段呢?用tp的写法,求解

日志表:log
+------------------+--------------+------+-----+---------+----------------+
| log_id           | int(10)      | NO   | PRI | NULL    | auto_increment |
| role_id          | int(11)      | NO   |     | NULL    |                |
| category_id      | int(10)      | NO   |     | NULL    |                |
| create_date      | int(10)      | NO   |     | NULL    |                |
| update_date      | int(10)      | NO   |     | NULL    |                |
| subject          | varchar(200) | NO   |     | NULL    |                |
| content          | text         | NO   |     | NULL    |                |
| comment_id       | int(10)      | NO   |     | NULL    |                |
| about_roles      | varchar(200) | NO   |     | NULL    |                |
| about_roles_name | varchar(500) | NO   |     | NULL    |                |
| belong_to_user   | varchar(30)  | NO   |     | NULL    |                |
| customer         | varchar(155) | YES  |     | NULL    |                |
+------------------+--------------+------+-----+---------+----------------+

日志客户中间表:r_customer_log
+-------------+---------+------+-----+---------+----------------+
| id          | int(10) | NO   | PRI | NULL    | auto_increment |
| customer_id | int(10) | NO   |     | NULL    |                |
| log_id      | int(10) | NO   |     | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

客户表:customer

+----------------------+--------------+------+-----+---------+----------------+
| customer_id          | int(10)      | NO   | PRI | NULL    | auto_increment |
| owner_role_id        | int(10)      | NO   |     | NULL    |                |
| creator_role_id      | int(10)      | NO   |     | NULL    |                |
| contacts_id          | int(10)      | NO   |     | 0       |                |
| name                 | varchar(333) | NO   |     |         |                |
| origin               | varchar(150) | NO   |     |         |                |
| industry             | varchar(150) | NO   |     |         |                |
| annual_revenue       | varchar(20)  | NO   |     | NULL    |                |
| create_time          | int(10)      | NO   |     | NULL    |                |
| update_time          | int(10)      | NO   |     | NULL    |                |
| is_deleted           | int(1)       | NO   |     | NULL    |                |
| is_locked            | int(1)       | NO   |     | NULL    |                |
| delete_role_id       | int(10)      | NO   |     | NULL    |                |
| delete_time          | int(10)      | NO   |     | NULL    |                |
| biz_type             | varchar(255) | NO   |     |         |                |
+-------------+---------+------+-----+---------+------------------------------+

解决方案

1这个是sql的多表关联
我先写个sql吧!

select c.name as name  from r_customer_log as cl  left join customer as c on c.customer_id=cl.customer_id left join log as l on l.log_id=cl.log_id where cl.log_id=1

$r_customer_log=M('r_customer_log');
$where['cl.log_id']=1;
$join1="  left join customer as c on c.customer_id=cl.customer_id ";
$join2="  left join log as l on l.log_id=cl.log_id ";
$r=$r_customer_log->alias('cl')->join($join1)->join($join2)->where($where)->select();

就是这样写的

这篇关于mysql - ThinkPHP3.1 多变关联查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆