[英]Join columns from two mysql tables
我正在尝试找出以下内容。 首先,我想检查成员是否在11、43或1组中。
我有带有列的下表:
table members (member_id, name, group)
334 Ronald 43
table content (member_id, value)
334 Gold
我正在寻找一个查询,该查询显示名称FROM成员和值FROM内容,并与member_id连接,最终结果类似
罗纳德·金
如果用户不在我设置的组中,则不会显示他/她。
以下是我设法做的
$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id ';
$retval = mysql_query( $sql, $conn );
和
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo $row['member_id']. " " .$row['value'];
echo "<br>";
}
将输出334金币。
我只需要检查开头的组,然后在最终输出中将member_id替换为name。 有什么帮助吗?
如果将echo $row['member_id']
更改为echo $row['name']
,则在回显结果时,将获得成员的名称。
返回$row['group']
将告诉您成员所在的组。
只需调整您的mysql查询即可:
$sql = 'SELECT m.name, p.value FROM members m JOIN content p ON m.member_id = p.member_id WHERE m.group = 1 OR m.group = 11 OR m.group = 43;
然后
echo $row['name']. " " .$row['value'];
另外,由于不建议使用mysql_query()
因此您应该使用mysqli_query()
或PDO::query()
。 参考
您的SQL应该为每一行返回以下构造
(member_id, name, group, value)
筛选出不在所需组中的成员修改您的查询
$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id WHERE m.group IN (11,43,1) ';
边注:
考虑使用PDO或mysqli_ *而不是mysql_ *,因为不推荐使用mysql_ *并在PHP7中删除
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.