Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
MySQL同一表上的多个子查询_Mysql_Sql - Fatal编程技术网

MySQL同一表上的多个子查询

MySQL同一表上的多个子查询,mysql,sql,Mysql,Sql,我得到了一个表格投票,表明我是否有用户投票给了特定的电影。它还向我显示了一个用户投了多少电影票 id_film | id_user | voting ---------------------------- 1 | 1 | 7 1 | 33 | 5 3 | 1 | 9 4 | 7 | 7 4 | 2 | 8 4 | 1

我得到了一个表格投票,表明我是否有用户投票给了特定的电影。它还向我显示了一个用户投了多少电影票

 id_film | id_user | voting
----------------------------
   1     |    1    |    7
   1     |   33    |    5
   3     |    1    |    9
   4     |    7    |    7
   4     |    2    |    8
   4     |    1    |    6
   6     |    1    |    6
  ...    |   ...   |   ...
我想通过以下方式获得与id_用户相关的id_电影列表:

从特定id用户处获取所有id电影,如

从id\U user=1的投票中选择id\U胶片

抓取每个相关的id\u用户

从id_film中的id_film中选择DISTINCT v.user

然后从上一次查询的用户列表中选择id_film's FROM vows v WHERE user,但第一次查询的id_film's除外

这是我第一次尝试:

SELECT id_film, film.title, film.originaltitle, COUNT(*)
FROM votes v
INNER JOIN film ON v.id_film = film.id
WHERE user IN
(
   SELECT DISTINCT v.user
   FROM votes v
   WHERE id_film IN
   (
       SELECT id_film
       FROM votes v
       WHERE user = 1
   )
)
AND
id_film NOT IN
(
   SELECT id_film
   FROM votes v
   WHERE user = 1
)
GROUP BY id_film
它不起作用。MySQL花费的时间太长,我重新启动了XAMPP

所以我尝试了另一次选择,这次是使用连接:

也不起作用,但当我尝试它没有在条件不在最后它的工作!花了大约一小时。第13节:-

这是工作查询

SELECT  DISTINCT v2.id_film AS v2Film
    FROM  votes v
    LEFT  OUTER  JOIN votes v1 ON v1.id_film = v.id_film
    LEFT  OUTER  JOIN votes v2 ON v1.user = v2.user
    WHERE v.user = 1
    AND v1.user != 1
有输出

 v2Film
---------
   1
  13
  14
  58
   4
  ...
但这个查询并没有排除第一个查询中的id_film。 因为我知道用户1已经投了id_film 1的票


那么,我的逻辑完全错了吗?或者我的代码太复杂了吗?

那么,投票给你的同一部电影的所有电影的列表?没错。如果有人也投了你投过票的电影,请展示他投过票的所有其他电影。粘贴所有表格和预期的O/P。这样,我们可以帮助你实现你的结果。
 v2Film
---------
   1
  13
  14
  58
   4
  ...