我有两个 sql 表,我正在尝试将它们连接在一起。我正在尝试将我的第一个表“video”中的 userid 和“review”表中的 posts_by 连接起来,以便输出列出一个用户对,他们总是为彼此提供“5” “星”栏
我正在使用这个语句,但它没有产生任何结果。 表中只有两个用户符合要求:Jstark@gmail.com 和 cmanley@gmail.com
查询:
SELECT U1.userid, U2.userid
FROM video U1, video U2
WHERE U1.userid < U2.userid
(SELECT COUNT(*)
FROM video
WHERE userid = U1.userid) =
(SELECT COUNT(J.star) FROM video J, review R
WHERE J.userid = U1.userid AND J.star = R.star AND R.posted_by = U2.userid AND R.star = "5")
review
(SELECT COUNT(*)
FROM video
WHERE userid = U2.userid) =
(SELECT COUNT(J1.star
FROM video J1, review R1
WHERE J1.userid = U2.userid AND J1.star = R1.star AND R1.posted_by = U1.userid AND R1.star = "5");
表视频
:
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| video_url | video_name | video_description | video_subject | video_city | video_tags | star | date | userid | reviewed_by |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://www.youtube.com/watch?v=xGa9AbKO-4s | Nice video of Detroit | Watch as someone shows you Detroit | Downtown Detroit | Detroit | lake | 5 | 2019-11-29 | atticus@yahoo.com | Michael@aol.com |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/5KE7ppUIPhQ | Sacaomento Forest | A nice forest in Sacromento | Forest in Sacramento | Sacramento | lake | 3 | 2019-11-30 | Don@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/5KE7ppUIPhQ1 | Sacromento Forest | A nice forest in Sacromento | Forest in Sacromento | Sacromento | lake | 5 | 2019-12-01 | Don@yahoo.com | |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/BnbE6QzKY-I | Great video of downtown Dallas | See a tour of downtown Dallas | Downtown Dallas | Dallas | lake | 0 | 2019-12-01 | john@gmail.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/HGvwO8qq8FI | Tour of Cape Cod | See a tour of Cape Code | View of Cape Code | Cape Code | lake | 5 | 2019-12-02 | Michael@aol.com | atticus@yahoo.com |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/HiZXABMNCUY | Tour of Manhattan | See Manhattan on the big screen | Downtown New york | Manhattan | lake | 2 | 2019-11-27 | Don@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/ORoyGEgvfXY | Nice video of Orlando | See the appeals of Orlando | Downtown Orlando | Orlando | lake | 4 | 2019-11-28 | Hhinata@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/pKwuW06NvXM | Scenic Downtown Cincinatti | Take the backroutes through Cincinatti | Take the backroutes through Cincinatties | Cincinatti | lake | 3 | 2019-11-26 | Jstark@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/QSwvg9Rv2EI | Tour of Chicago | Let us bring Chicago to you | Downtown Chicago | Chicago | lake | 2 | 2019-11-25 | john@gmail.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/qY02yEvqFio | Downtown Detroit | Tour of Downtown Detroit | Downtown Detroit | Detroit | lake | 5 | 2019-11-27 | Megan@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
| https://youtu.be/_QH_tdYR3iI | Great video of Lake Erie | See the great lakes up close | Michigan great lakes | Traverse City | lake | 0 | 2019-11-27 | cmanley@yahoo.com | NULL |
+---------------------------------------------+--------------------------------+----------------------------------------+------------------------------------------+---------------+------------+------+------------+-------------------+-------------------+
表评论
:
+--------------------------------+--------------------------+-------------+-------------------+
| video_name | review_comments | review_star | posted_by |
+--------------------------------+--------------------------+-------------+-------------------+
| Nice video of Detroit | cool dude | 2 | john@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Tour of Chicago | cool video | 5 | Jstark@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Tour of Cape Code | could have been better | 3 | Megan@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Great video of downtown Dallas | good video | 5 | Don@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Great video of downtown Dallas | great video | 0 | Don@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Nice video of Detroit | great video! | 2 | don@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Great video of Lake Erie | i really didnt like this | 0 | cmanley@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Great video of downtown Dallas | it was terrible | 0 | Don@gmail.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Great video of downtown Dallas | Nice van | 4 | Hhinata@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Nice video of Detroit | nice video | 5 | test@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Sacramento Forest | okay video | 3 | atticus@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Scenic Downtown Cincinatti | terrible video | 0 | Michael@aol.com |
+--------------------------------+--------------------------+-------------+-------------------+
| Nice video of Orlando | wonderful video | 5 | Hhinata@yahoo.com |
+--------------------------------+--------------------------+-------------+-------------------+
最佳答案
为了解决这个问题,我将从一些基本查询开始,并努力找到所提出的答案。
首先通过联接整理视频和评论
SELECT v.video_name, AVG(review_star)
FROM video v
JOIN review r
USING (video_name)
GROUP BY v.video_name
然后我们可以查看评论者的平均星级评分:
SELECT r.posted_by, AVG(review_star)
FROM review r
GROUP BY r.posted_by
更进一步,按海报/评论对进行分组:
SELECT v.userid, r.posted_by, AVG(review_star)
FROM video v
JOIN review r
USING (video_name)
GROUP BY v.userid, r.posted_by
HAVING
允许对此进行后置过滤器。所有 5 星级评分的平均值为 5。
SELECT v.userid, r.posted_by, AVG(review_star) as avg
FROM video v
JOIN review r
USING (video_name)
GROUP BY v.userid, r.posted_by
HAVING avg = 5
关于mysql - 连接多个sql表以查找共同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185901/