如何连接mysql表

时间:2017-07-09 12:08:22

标签: php mysql

我在同一个数据库中有两个表,一个用于图片,另一个用于图片注释。如何编写一个sql命令来获取属于每个特定图片的所有注释?

3 个答案:

答案 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键字段。