gpt4 book ai didi

sql - 在单个 SQL 查询中两次使用不同的列值?

转载 作者:行者123 更新时间:2023-11-29 05:44:08 24 4
gpt4 key购买 nike

我有一个名为“User”的 mySQL 表,其中包含多个混合值,如下所示:

[user_id] [user_email] [birthday]
---------------------------------
1 x@xxx.com 01/01/1981
2 y@yyy.com 02/02/1982
3 z@zzz.com 03/03/1983

我有另一个名为“Name”的表,其中包含用户名,但也包含一些像这样的电影:

[node_id]  [name]       [user_id]
----------------------------------
9 John Doe 1
10 Star Wars 90
11 Mike Smith 2
12 Mary Lord 3
13 Rocky III 91

最后,我有一个名为“投票”的第三个表,它是用户和他喜欢的一些电影之间的关系。

[vote_id] [node_id]  [user_id] 
------------------------------
1 10 1
2 10 2
3 13 1
12 10 3
13 13 2

我正在努力做的是为两个不同的事物提取一个具有两倍“名称”值的查询:用户的名称和他喜欢的电影的名称。像这样:

[user_id]  [user_name]  [Birthday]  [movie_name]
-------------------------------------------------
1 John Doe 01/01/1981 Star Wars
2 Mike Smith 02/02/1982 Star Wars
1 John Doe 01/01/1981 Rocky III
3 Mary Lord 03/03/1983 Rocky III
2 Mike Smith 02/02/1982 Rocky III


SELECT user.id,
node.name,
user.birthday,
IF(node.type = "movie", node.name, "")
FROM user,
node
JOIN vote ON vote.user_id = user.user_id
WHERE user.id = node.id

我想我都搞混了...有人可以帮忙吗?

最佳答案

假设您的架构正是您在上面发布的内容,这应该可以逐字进行。

查询

  SELECT user.user_id,
node.name user_name,
user.birthday,
(select node.name from node where node_id = vote.node_id) as movie_name
FROM user
JOIN node ON user.user_id = node.user_id
JOIN vote ON vote.user_id = user.user_id

结果

alt text

关于sql - 在单个 SQL 查询中两次使用不同的列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4151572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com