gpt4 book ai didi

MySQL连接查询4张表

转载 作者:行者123 更新时间:2023-11-29 12:34:30 25 4
gpt4 key购买 nike

我正在尝试创建具有多个联接的查询,但它对我不起作用。我有以下查询语句:

SELECT DISTINCT s.per_id 
, s.per_key
, s.per_disabled
, p.acc_id
, a.acc_name
, p.approved_acc_id
, p.per_time
FROM acc_permissions p
JOIN svr_permissions s
JOIN acc_general a
JOIN svr_group_permissions g
WHERE a.acc_id = p.acc_id
AND p.per_id = s.per_id
OR a.acc_per_group = g.group_id
AND a.acc_id = p.acc_id

现在,如果您不想检查这个查询,我理解,所以我将举例说明我的表结构;

第一个表(包括用户):

acc_general

第二个表(包括权限(链接到用户)):

acc_权限- 此表包含链接到 acc_general 中的 acc_id 的行。此表中一个唯一的 acc_id 可以有多行。

第三个表(包括权限(喜欢群组)):

组权限

现在,这包括链接到组的行,每个组在此表中都有多行。

在 acc_general 中有一个名为的字段; acc_group_id,这与group_permissions内的group_id类似

所以我需要一个返回所有玩家的所有权限的查询。但它不应该为帐户创建重复的权限。

因此,如果我的帐户在 acc_permission 中具有权限 id 1,并且在 group_permissions 中具有权限 id 1,则应该忽略它。

这很难举例,但我希望有人理解我想要什么。

问候,罗尔

最佳答案

join 查询语法

SELECT DISTINCT s.per_id AS per_id,
s.per_key AS per_key,
s.per_disabled AS per_disabled,
p.acc_id AS acc_id,
a.acc_name as acc_name,
p.approved_acc_id AS approved_acc_id,
p.per_time AS per_time
from acc_permissions p
join svr_permissions s
ON p.per_id = s.per_id
join acc_general a
ON a.acc_id= p.acc_id
left join svr_group_permissions g
ON a.acc_per_group = g.group_id

关于MySQL连接查询4张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com