gpt4 book ai didi

mysql - 连接派生表

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:35 25 4
gpt4 key购买 nike

编辑:我正在使用 phpMyAdmin 界面,我已经将代码从 phpMyAdmin 复制/粘贴到此处。当我运行以下代码时,phpMyAdmin 似乎运行了“不同的代码”,并生成了一些引用该“不同代码”的错误消息,造成了巨大的困惑。

** 最终编辑:似乎是 Safari 引起的:当我尝试运行下面的第二个查询时,它运行“不同的查询”。请改用 Firefox,它会生成正确的结果。感谢您的帮助,对于造成的困惑,我们深表歉意。 **

我有两个表:newsFeeds, comments, where

** newsFeeds 包含 PID 列,comments 包含 FID 列。**

我想连接两个表中匹配 PID = FID 的行。我的代码是:

SELECT * FROM newsFeeds
INNER JOIN
(
SELECT * FROM
comments
)
ON comments.FID = newsFeeds.PID

错误消息是“#1248 - 每个派生表都必须有自己的别名”。

然后根据此处的其他帖子,我在 ) 之后添加 AS newtb。然后代码是:

SELECT * FROM newsFeeds
INNER JOIN
(
SELECT * FROM
comments
) AS newtb
ON newtb.FID = newsFeeds.PID

但是出现了另一个错误:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在 'INNER JOIN( SELECTFID,COUNT(*) AScount FROMcomments 附近使用的正确语法
在第 8 行限制 0、25'

我想知道如何正确地做到这一点?

最佳答案

您应该通过删除派生表来更正此问题:

SELECT *
FROM tb_1 INNER JOIN
tb_2
ON tb_2.FID = tb_1.PID;

MySQL 倾向于具体化派生表,这会损害性能。

不过,您的问题的答案是在括号后添加一个名称:

SELECT *
FROM tb_1 INNER JOIN
(SELECT *
FROM tb_2
) t2
ON t2.FID = tb_1.PID;

关于mysql - 连接派生表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461453/

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