gpt4 book ai didi

mysql - 从两个表中获取结果 from id 和 following id

转载 作者:可可西里 更新时间:2023-11-01 08:20:06 25 4
gpt4 key购买 nike

因为我有时很迷糊,所以我之前问错了问题。现在,这就是我要实现的目标。

我正在尝试从 user.id = 1 获取值以及 user.id = 1 关注的用户的值。

但我从 user.id 1 或在本例中的后续 following.follow_id = 2 获得结果。有什么想法吗?

我已经创建了一个用于展示的 SQLfiddle。如您所见,我得到的唯一结果来自 user_one。

http://sqlfiddle.com/#!2/6a39f/1

SELECT user.email, 
user.username,
tweets.message,
tweets.date,
userdetails.profile_img,
userdetails.firstname,
userdetails.lastname,
following.id, following.user_id,
following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN tweets ON userdetails.user_id = tweets.user_id
LEFT JOIN following ON user.id = 1
WHERE following.user_id = 1

表格:

推文

user_id | id | date | message

用户

id | email | password | username

用户详细信息

id | firstname | lastname | profile_img | user_id | about

关注

id | user_id | follow_id

在这种情况下,下表具有值(value)

 user_id = 1 and follow_id = 2

总结。

User_id = 1 is following follow_id = 2

但我只从 user_id = 1 中得到结果,而不是从两者中得到结果。谢谢。

基本上,我正在尝试将这两个查询结合起来。

从被关注的用户处获取结果的查询。

SELECT user.email, 
user.username,
tweets.message,
tweets.date,
userdetails.profile_img,
userdetails.firstname,
userdetails.lastname,
following.id, following.user_id,
following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN tweets ON userdetails.user_id = tweets.user_id
JOIN following ON following.follow_id
WHERE following.follow_id = tweets.user_id AND following.user_id = '1' ORDER BY tweets.date DESC

以及获取用户 1 的值的查询

SELECT user.email, 
user.username,
tweets.message,
tweets.date,
userdetails.profile_img,
userdetails.firstname,
userdetails.lastname
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN tweets ON userdetails.user_id = tweets.user_id
WHERE user.id = '1' ORDER BY tweets.date DESC

最佳答案

您似乎想要获取 ID 为 1 或 ID 为一个或多个其他值的数据。所以,你可以从这个开始

SELECT user.email, 
user.username,
tweets.message,
tweets.date,
userdetails.profile_img,
userdetails.firstname,
userdetails.lastname,
following.id, following.user_id,
following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN tweets ON userdetails.user_id = tweets.user_id
WHERE user.id = 1
OR user_id IN
(
SELECT follow_id
FROM following
WHERE user.id = following.user_id
)

关于mysql - 从两个表中获取结果 from id 和 following id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133370/

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