Php Mysql内部连接查询给出一行三次
谢谢你的阅读 我正在努力学习内心的联结和联结。我的目的是比较,如果用户创建的社区在CommunityMembers表中也被标记为管理员(我不确定内部联接是否实现了这一点),并从社区表中获取与CommunityID相关的所有其他社区信息(据我所知,内部联接是可能的) 我有两张桌子,分别是Community和CommunityMembers 该结构用于社区(它有其他数据,如日期、内容等): 社区成员Php Mysql内部连接查询给出一行三次,php,mysql,pdo,inner-join,Php,Mysql,Pdo,Inner Join,谢谢你的阅读 我正在努力学习内心的联结和联结。我的目的是比较,如果用户创建的社区在CommunityMembers表中也被标记为管理员(我不确定内部联接是否实现了这一点),并从社区表中获取与CommunityID相关的所有其他社区信息(据我所知,内部联接是可能的) 我有两张桌子,分别是Community和CommunityMembers 该结构用于社区(它有其他数据,如日期、内容等): 社区成员 CmID - UserID - Slug - Power 1
CmID - UserID - Slug - Power
1 - 2 - video - admin
2 - 2 - funny - admin
3 - 4 - picture - admin
我的php代码:($\u SESSION['UserID']
是2)
和echo$sql->rowcount()代码>打印
六,
你能帮个忙吗?为什么要打印三次相同的东西?我的解决方案是否正确地检查用户是否创建了社区,社区成员中是否标记为admin,或者我是否需要检查它
谢谢
$sql = $dbc->prepare(" SELECT DISTINCT cm.*, com.*
FROM Community com
INNER JOIN CommunityMembers cm ON cm.UserID = com.CreatedByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'");
选择不同的
如果您只需要知道它的管理员,请不要从CommunityMembers中获取所有字段。试试这个
$sql = $dbc->prepare(" SELECT DISTINCT cm.Power, com.*
FROM Community com
LEFT JOIN CommunityMembers cm ON cm.UseriID=com.CreaterByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'");
没有测试它,但即使没有DISTINCT,它也应该可以工作。试试这个
$sql = $dbc->prepare("
SELECT cm.*, com.*
FROM Community com
INNER JOIN CommunityMembers cm ON cm.UserID = com.CreatedByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'
GROUP BY com.CreatedByUser
");
如果选择两个表resultselect cm.*,com.*
它将返回所有不同的对,因此请尝试只选择所需的specifics字段
PS:完整的结果是什么,我的意思不仅仅是字段slug
?@sskoko它没有改变任何东西结果是一样的。如果你让输出等于$data['slug',]而不是附加它,会发生什么?或者如果您只是回显$data['Slug']?
$sql = $dbc->prepare(" SELECT DISTINCT cm.*, com.*
FROM Community com
INNER JOIN CommunityMembers cm ON cm.UserID = com.CreatedByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'");
$sql = $dbc->prepare(" SELECT DISTINCT cm.Power, com.*
FROM Community com
LEFT JOIN CommunityMembers cm ON cm.UseriID=com.CreaterByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'");
$sql = $dbc->prepare("
SELECT cm.*, com.*
FROM Community com
INNER JOIN CommunityMembers cm ON cm.UserID = com.CreatedByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'
GROUP BY com.CreatedByUser
");