我在同一个数据库中有两个表,一个用于图片,另一个用于图片注释。如何编写一个sql命令来获取属于每个特定图片的所有注释?
答案 0 :(得分:1)
以下代码应该有效。就像我说的,这是非常基本的问题,我觉得你有一些与此相关的问题。发布您尝试过的代码并编辑问题。您可以使用WHERE
子句进一步过滤。
SELECT picture_table.pic_owner, picture_table.pic_insert_date, picture_comment_table.pic_commentor_name, picture_comment_table.pic_comments FROM
picture_table LEFT JOIN picture_comment_table
ON picture_table.pic_id = picture_comment_table.pic_id
答案 1 :(得分:1)
$mysqli = new mysqli("example.com", "user", "password", "database");
$query = "SELECT picture_table.pic_id, picture_comment_table.*
FROM picture_table LEFT JOIN picture_comment_table
ON picture_table.pic_id = picture_comment_table.pic_id";
$stmt = $mysqli->prepare($query);
!$stmt ? die('error') : "";
$stmt->execute();
我使用了左连接,因为在内连接的情况下,有一些没有注释的图片会被选中。
另请注意,如果图片有多个注释行,那么该图片的结果将超过1行,无论是在应用程序层(您的php代码)还是在sql中,您都应该处理这一行声明。
答案 2 :(得分:0)
如上所述加入是一个很好的解决方案。 但您也可以通过主键和foriegn键关联这两个表。 在图片表中创建主键字段,并在注释表中创建一个foriegn键字段。