三个表链接,表一为联系人表,其中有联系人ID(lid),联系人归属企业ID(linownid),联系人姓名(linname),联系人手机号(linmobile)。表二为通讯录组表,其中有通讯组id(gid),通讯组名(grpname),通讯组所有者(grpownid)。表三为通讯组与联系人关系表,其中有联系人id(lid),通讯组id(gid),通讯组所有者(grpownid),联系人姓名(linname),联系人手机号码(mobileno),请根据以上条件写出,查询企业id为"591122630"的企业通讯录中所有的通讯组及其组中联系人的sql语句
时间: 2024-03-27 08:39:58 浏览: 41
三个表的一个sql语句查询
以下是查询企业id为"591122630"的企业通讯录中所有的通讯组及其组中联系人的SQL语句:
```
SELECT g.gid, g.grpname, c.lid, c.linname, c.linmobile
FROM 通讯录组表 AS g
INNER JOIN 通讯组与联系人关系表 AS r ON g.gid = r.gid AND g.grpownid = r.grpownid
INNER JOIN 联系人表 AS c ON r.lid = c.lid AND c.linownid = '591122630'
WHERE g.grpownid = '591122630';
```
解释:
首先,我们从 `通讯录组表` 中选取所有的通讯组,并将其与 `通讯组与联系人关系表` 进行内连接,以获取与每个通讯组相关联的联系人信息。然后,我们再将其与 `联系人表` 进行内连接,以获取联系人的姓名和手机号码。
在这个查询中,我们使用了三个表的联接,并使用了 `INNER JOIN` 来滤掉不相关的记录。我们还使用了 `AND` 和 `OR` 运算符来将多个条件组合在一起。最后,我们使用了 `WHERE` 子句来限制结果集,只包含企业id为"591122630"的通讯组和联系人。
阅读全文