Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL如何通过一个查询从不同的表中获得两个结果_Php_Mysql_Sql_Performance - Fatal编程技术网

Php MySQL如何通过一个查询从不同的表中获得两个结果

Php MySQL如何通过一个查询从不同的表中获得两个结果,php,mysql,sql,performance,Php,Mysql,Sql,Performance,我有以下表格: 表名----|表字段 图书--------------------图书id、图书名称 作者-----------作者id,作者姓名 图书作者-作者id,图书id 用户------------------用户id、用户名 注释----------注释id,注释 评论|用户|评论| id、用户id、图书id、日期 我需要显示书名、作者以及为这本书发布的所有评论(我需要显示用户名、日期、评论)。 我可以用两个不同的sql查询来完成,但我不知道如何用一个查询来完成。 以下是两个问题:

我有以下表格:


表名----|表字段

图书--------------------图书id、图书名称

作者-----------作者id,作者姓名

图书作者-作者id,图书id

用户------------------用户id、用户名

注释----------注释id,注释

评论|用户|评论| id、用户id、图书id、日期


我需要显示书名、作者以及为这本书发布的所有评论(我需要显示用户名、日期、评论)。 我可以用两个不同的sql查询来完成,但我不知道如何用一个查询来完成。 以下是两个问题:

SELECT * FROM books
INNER JOIN books_authors
ON books.book_id=books_authors.book_id
INNER JOIN authors
ON books_authors.author_id=authors.author_id
WHERE books.book_id=7
这个函数返回id=7的书的名称和作者

SELECT `user_name`, `comment`, `date`
FROM comments_users
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE comments_users.book_id=7
这将返回用户名、注释和注释发布日期。
有谁能解释一下,我如何将它们合并到一个查询中?提前感谢

您不能将两个查询中的所有表合并起来吗

SELECT `books.book_id`, `books.book_title`, `comments_users.user_name`,
`comments_users.comment`, `comments_users.date` 
FROM books
INNER JOIN books_authors ON books.book_id=books_authors.book_id
INNER JOIN authors ON books_authors.author_id=authors.author_id
INNER JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

希望这就是您试图实现的目标。

您不能将两个查询中的所有表合并起来吗

SELECT `books.book_id`, `books.book_title`, `comments_users.user_name`,
`comments_users.comment`, `comments_users.date` 
FROM books
INNER JOIN books_authors ON books.book_id=books_authors.book_id
INNER JOIN authors ON books_authors.author_id=authors.author_id
INNER JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

希望这就是您试图实现的目标。

您不能将两个查询中的所有表合并起来吗

SELECT `books.book_id`, `books.book_title`, `comments_users.user_name`,
`comments_users.comment`, `comments_users.date` 
FROM books
INNER JOIN books_authors ON books.book_id=books_authors.book_id
INNER JOIN authors ON books_authors.author_id=authors.author_id
INNER JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

希望这就是您试图实现的目标。

您不能将两个查询中的所有表合并起来吗

SELECT `books.book_id`, `books.book_title`, `comments_users.user_name`,
`comments_users.comment`, `comments_users.date` 
FROM books
INNER JOIN books_authors ON books.book_id=books_authors.book_id
INNER JOIN authors ON books_authors.author_id=authors.author_id
INNER JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

希望这就是您试图实现的目标。

此排列的查询应该足够了,它将根据您的需要显示结果:

SELECT books.book_title, authors.author_name, comments.comment FROM books
INNER JOIN books_authors
ON books.book_id=books_authors.book_id
INNER JOIN authors
ON books_authors.author_id=authors.author_id
LEFT JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

此排列的查询应该足够了,它将根据您的需要显示结果:

SELECT books.book_title, authors.author_name, comments.comment FROM books
INNER JOIN books_authors
ON books.book_id=books_authors.book_id
INNER JOIN authors
ON books_authors.author_id=authors.author_id
LEFT JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

此排列的查询应该足够了,它将根据您的需要显示结果:

SELECT books.book_title, authors.author_name, comments.comment FROM books
INNER JOIN books_authors
ON books.book_id=books_authors.book_id
INNER JOIN authors
ON books_authors.author_id=authors.author_id
LEFT JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

此排列的查询应该足够了,它将根据您的需要显示结果:

SELECT books.book_title, authors.author_name, comments.comment FROM books
INNER JOIN books_authors
ON books.book_id=books_authors.book_id
INNER JOIN authors
ON books_authors.author_id=authors.author_id
LEFT JOIN comments_users ON comments_users.book_id = books.book_id
INNER JOIN comments ON comments_users.comment_id = comments.comment_id
INNER JOIN users ON comments_users.user_id = users.user_id
WHERE books.book_id=7

MySQL不是sql Server MySQL不是sql Server MySQL不是sql Server MySQL不是sql Server虽然我自己知道怎么做(你的答案几乎相同),但我认为这是最好的答案,我认为这是最好的答案。虽然我自己知道怎么做(你的答案几乎相同),但我认为这是最好的答案。尽管我自己知道怎么做(你的答案几乎相同),我认为这是最好的答案。