我需要一些帮助来查询 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)
但这会导致其他审稿人而不是该特定审稿人审阅的摘要根本不会显示给他。
我的问题是我不知道当时允许什么...