mysql的搜索信息求助如何查询多个表的内容
message表user表
IDUIDATCONTENTUIDUSERNAME
1113这是ID为1的人对ID13的人说的消息内容1张三
2214这是ID为2的人对ID14的人说的消息内容2李四
357这是ID为5的人对ID7的人说的消息内容5赵五
现在有2张mysql的数据库表,一张为消息表,一张为用户表,我省略了部分信息,留下了这些字段。message表中,UID和AT字段分别表示发送者和接收者的用户UID,user表为用户uid和username的对应关系。
我想查询出来并展示这一的结果: “张三” 对 “李四” 说 : 这是。。。。
但是message表只能查询出uid信息,必须要和user表关联起来,才能得到username。
用了如下代码,能查询出uid的username,但是AT的对应username无法获取。
$this->db->from('message');
$this->db->join('user', 'user.uid = message.uid');
$this->db->where('message.uid', $id); //这个是查询的过滤信息,此处无关
return$this->db->get()->result_array();
这样可以查询出张三 对 uid13 说: 这是。。。这样的格式, 我该怎么获取到at的uid对应的username信息呢?
1. message where uid = 1
2. user where uid in (1, 13) 谢谢版主,可能我没描述清楚,我当时想一次查询出结果,而且用in这个查出来,一旦数据多了,还对应不上号
开始是纠结于username的字段名重复,没法返回,后来我查询到了可以使用别名,这样可以用2个join语句,一次就查询出我想要的结果了。
要同时把查询字段和第二个join都用上别名
$this->db->select('message.id, message.uid, message.at, message.content, user.username,at_user.usernick AS at_username');
$this->db->from('message');
$this->db->join('user', 'user.uid = message.uid');
$this->db->join('user AS at_user', 'at_user.uid = message.uid');
$this->db->where('message.uid', $id); //这个是查询的过滤信息,此处无关
return$this->db->get()->result_array();
页:
[1]