gpt4 book ai didi

mysql - 使用 3.23.58 版本的子查询重写 MySQL 查询

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

我需要一些帮助来查询 MySQL 3.23.58 版的数据库。

原则上我想做这个查询(包括一些 php):

SELECT * 
FROM abstracts
LEFT JOIN
(SELECT * FROM reviewdata WHERE reviewerid='$userid') as reviewdata
ON abstracts.id=reviewdata.abstractid
WHERE session='$session'

换句话说,如果审稿人已经审阅过摘要,我想要一个包含所有摘要的列表以及摘要的审阅数据。否则我仍然想要摘要,但评论数据为空(以便他可以更改它)。

上面的查询在较新的版本中运行良好,但在这个旧版本中我不允许使用子查询,所以当我在 LEFT JOIN 中使用嵌套的 SELECT 时 MySQL 会报错。

所以现在我正在寻找一种方法来避免这种子查询...

我试过:

SELECT * 
FROM abstracts
LEFT JOIN reviewdata
ON abstracts.id=reviewdata.abstractid
WHERE session='$session' AND (reviewerid='$userid' or reviewerid is null)

但这会导致其他审阅者审阅过的摘要,而不是该特定审阅者审阅过的摘要,根本不会为他显示。

我的问题是我不知道当时允许什么...

最佳答案

如果没有旧安装,我无法尝试此操作,但请尝试将对 reviewerid 的检查放在 ON 子句中。

SELECT * 
FROM abstracts
LEFT OUTER JOIN reviewdata
ON abstracts.id=reviewdata.abstractid
AND reviewerid='$userid'
WHERE session='$session'

关于mysql - 使用 3.23.58 版本的子查询重写 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910660/

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