gpt4 book ai didi

MySQL 内连接失败

转载 作者:行者123 更新时间:2023-11-30 00:51:11 25 4
gpt4 key购买 nike

我得到了这个简单的连接语句,并且我很确定语法是正确的。我看了一些教程,没有发现我的代码和示例之间有任何区别。声明如下:

SELECT n.id nId, n.news_date, n.news_type,
p.id pId, p.title pTitle, p.file_path pPath,
s.id sId, s.title sTitle, s.content sContent,
v.id vId, v.title vTitle, v.url vUrl
FROM photo_news p, standard_news s, video_news v
INNER JOIN news n
ON p.news_id = n.id OR s.news_id = n.id OR v.news_id = n.id
ORDER BY n.news_date DESC

我收到以下错误:

Unknown column 's.news_id' in 'on clause'

我真的不知道为什么会出现这个错误,因为列“news_id”存在于它必须存在的每个表中。如果我更改 ON 子句中的顺序(即我以 p.news_id = n.news_id 开始),我会得到相同的错误(unknwonw 列 p.news_id)。所以我认为别名有问题,但我真的不知道。感谢您的帮助;)

最佳答案

您可能正在寻找类似的东西来返回照片新闻中的记录数据,并至少在另一个表中包含数据。

在这种情况下,您需要在 JOIN 条件中使用 LEFT JOIN 而不是 OR。

         SELECT n.id nId, n.news_date, n.news_type,
p.id pId, p.title pTitle, p.file_path pPath,
s.id sId, s.title sTitle, s.content sContent,
v.id vId, v.title vTitle, v.url vUrl
FROM news n
LEFT OUTER JOIN photo_news p
ON n.id = p.news_id
LEFT OUTER JOIN standard_news s
ON n.id = s.news_id
LEFT OUTER JOIN video_news v
ON n.id = v.news_id
WHERE p.news_id IS NOT NULL
OR s.news_id IS NOT NULL
OR v.news_id IS NOT NULL

ORDER BY n.news_date DESC

关于MySQL 内连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955129/

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