gpt4 book ai didi

php - mysql inner join查询给一行三次

转载 作者:行者123 更新时间:2023-11-29 03:03:46 26 4
gpt4 key购买 nike

感谢阅读。

我正在尝试学习内部连接和连接。我的目的是比较如果用户创建的社区在 CommunityMembers 表中也被标记为管理员(我不确定 INNER JOIN 是否实现了这一点)并从与 CommunityID 相关的社区表中获取所有其他社区信息(这是可能的据我所知,内部连接)。

我有两个表,名为 Community 和 CommunityMembers。

该结构用于社区(它还有其他数据,例如日期、内容等...):

CommunityID -    Slug      - CreatedByUser
1 - video - 2
2 - funny - 2
3 - picture - 4

对于社区成员

 CmID - UserID  -      Slug         - Power
1 - 2 - video - admin
2 - 2 - funny - admin
3 - 4 - picture - admin

我的 php 代码:($_SESSION['UserID'] 是 2)

<?php

$sql = $dbc->prepare(" SELECT cm.*, com.*
FROM Community com
INNER JOIN CommunityMembers cm ON cm.UserID = com.CreatedByUser
WHERE cm.UserID = '" . $_SESSION['UserID'] . "'");

$sql->execute();

if($sql->rowCount()){
echo $sql->rowCount();
while($data = $sql->fetch()){
$output .= $data['Slug'] .'<br />';
}
echo $output;
}else{
$_ERROR = "no record";
}
?>

echo $output; 打印

video
video
video
funny
funny
funny

echo $sql->rowcount();打印 6

你能帮忙解决一下吗?为什么这个打印同样的东西 3 次?我的解决方案是否适合检查用户创建的社区是否在 CommunityMembers 中被标记为管理员,或者我是否需要检查它?

谢谢。

最佳答案

试试这个

$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
");

关于php - mysql inner join查询给一行三次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033295/

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