[英]Query SELECT * FROM multiple tables
我有两个看起来像这样的表:
帖子表:
ID | photo | ident
-------------------------------------
80 | img/photo1 | ACH3882
81 | img/photo2 | SHD8837
82 | img/photo3 | SFF4837
83 | img/photo4 | DLL3266
表扬表:
ID | photo_id | ident_id
-------------------------------------
1 | 80 | SHD8837
2 | 83 | ACH3882
3 | 82 | SHD8837
它是如何工作的:我正在尝试将荣誉系统添加到我的网站。 我已经设置了上面显示的表格。 每个用户都有自己的ident
。 当用户按下 kudos 按钮时,用户的ident
和photo
的 id 存储在 kudos 表中,如下所示:
$id = $_GET['id']; // get id through query string
$ident = $_SESSION["ident"];
$sql = "INSERT INTO kudos (photo_id, ident_id) VALUES ('$id', '$ident')";
if(mysqli_query($link, $sql)){
mysqli_close($link); // Close connection
header("location:index.php"); // redirects to all records page
exit;
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
现在我想显示每张照片的点赞数。 目前我只查询一张表,但我还需要查询第二张表才能从该表中获取值。 这就是我查询第一个表的方式:
<?php
$query = "SELECT * FROM post;
if ($result = $mysqli->query($query)) {
$num_rows = 0;
while ($row = $result->fetch_assoc()) {
$num_rows++;
/* <!-- Feed start --> */
echo "{$row['photo']}.";
echo '<a class="btn" href="kudos.php?id=';
echo "{$row['id']}";
echo '">';
echo '★ Give kudos</a>';
echo ' 0'; <- This is where I want the number count of kudos gives to show up.
... and so on
有人可以帮我吗?
Select p.id,p.photo,p.indent from post p Left join kudos k on p.id = k.photo_id
也许您可以尝试加入表格?
SELECT Post.id as post, count(Kudos.ident_id) as kudos
FROM Post
LEFT JOIN Kudos ON Post.id=Kudos.photo_id
GROUP BY Post.id;
这应该会给你带来类似的回报:
post_id ... kudosCount
在此处阅读有关联接的更多信息: SQL 联接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.