php - 如何在mysql中从2个不同的表中进行多次查询?
问题描述
如何从 2 个不同的表中查询多个 while?
我的代码现在看起来像这样:
$query = "SELECT * FROM user_group WHERE email = '$email'";
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($result);
$group = $row['group'];
$sql = "SELECT * FROM matches WHERE group_name1 = '$group' OR group_name2 = '$group'";
$result = $connection->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
//some HTML code
}
}
?>
它有效,但由于第一个查询(?)我得到'$row ['group'];',因此只显示匹配表中的一行
解决方案
您需要遍历第一个查询的所有结果,然后在循环中执行第二个查询。
但最好将这两个查询合二为一。
$query = "
SELECT m.col1, m.col2, m.col3, ...
FROM matches AS m
JOIN user_group AS g ON g.group IN (m.group_name1, m.group_name2)
WHERE g.email = ?";
$stmt = $connection->prepare($query);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($col1, $col2, $col3, ...);
while ($stmt->fetch()) {
// some code that uses the variables $col1, $col2, $col3, ...
}
将col1
, col2
,col3
等替换为表中的实际列名。
推荐阅读
- regex - Postgresql 中的 REGEXP_LIKE
- python-3.x - 为什么我的 PyGame 图像存储在程序本地而不加载?
- android - 为什么我可以在数据更改之前在 onResume() 中调用 notifyItemChanged()?
- javascript - 如何获取输入字段中的最后一个字符/数字?
- python - 如何在该程序中正确实施 try-except ?
- awk - 为什么 awk 中的 asort 会弄乱我数组中的一条记录?
- angular - 如何让 Creative Tim Angular Material Pro 在 JVectorMap 上渲染区域?
- python - 如果条件满足,分配标识符
- android - Mockito - RuntimeException:存根!模拟 RecyclerView.Adapter 时
- voltdb - 搜索 VoltDB ODBC 驱动程序