gpt4 book ai didi

mysql - SQL where 子句依赖于先前的 select 语句

转载 作者:行者123 更新时间:2023-11-29 21:13:01 25 4
gpt4 key购买 nike

在以下语句中,我尝试从数据库中检索推文及其作者信息。我还想检索与这些推文相关的主题标签(换句话说,在这些推文中提到)。

select Tweet.Label, Tweet.TDate, Author.Lable, Author.ALink, Tweet.TLink, Tweet.ID as TID 
from Tweet, Author
where Tweet.ID IN
(select TweetID from TweetMention where MentionID IN
(select ID from Mention where Label = 'Cr7Prince4ever'))
AND Author.ID = Tweet.AuthorID
UNION
select Label, HLink
from Hashtag
where ID IN
(select HashID from TweetHashs where TweetID = TID)

除了如何在推文和主题标签之间链接之外,一切都工作正常。我想首先检索推文及其作者,并根据检索到的推文检索这些推文中写入的主题标签。目前,我无法修复的错误位于 where 子句 where TweetID = TID 中的第二个 select 语句中。我尝试让第二个语句根据第一个语句中检索到的推文 ID 获取推文 ID,但它不起作用。

最佳答案

您的查询有很多问题,无法运行。

也许您正在寻找这样的查询:

select     Tweet.Label, 
Tweet.TDate,
Author.Lable,
Author.ALink,
Tweet.TLink,
Tweet.ID,
Hashtag.Label,
Hashtag.HLink
from Tweet
inner join Author
on Tweet.AuhtorID = Author.ID
left join TweetHashs
on TweetHashs.TweetID = Tweet.ID
left join Hashtag
on Hashtag.ID = TweetHashs.HashID
where Tweet.ID IN
( select TweetID
from TweetMention
where MentionID IN
( select ID
from Mention
where Label = 'Cr7Prince4ever'
)
)

注意:TweetHashs 的拼写似乎错误,但这就是你的说法。

上面的查询将返回同一条推文的多个结果,因为它在单独的行中列出了推文的每个哈希值。如果您希望每条推文只有一个结果,并将它们的哈希值串联在一个以逗号分隔的列表中,则可以将 group_concatgroup by 结合使用:

select     Tweet.Label, 
Tweet.TDate,
Author.Lable,
Author.ALink,
Tweet.TLink,
Tweet.ID,
group_concat(Hashtag.Label) labels,
group_concat(Hashtag.HLink) links
from Tweet
inner join Author
on Tweet.AuhtorID = Author.ID
left join TweetHashs
on TweetHashs.TweetID = Tweet.ID
left join Hashtag
on Hashtag.ID = TweetHashs.HashID
where Tweet.ID IN
( select TweetID
from TweetMention
where MentionID IN
( select ID
from Mention
where Label = 'Cr7Prince4ever'
)
)
group by Tweet.ID

关于mysql - SQL where 子句依赖于先前的 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209592/

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