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)
しかし、これにより、この特定の査読者ではなく、他の査読者によって査読された抄録がまったく表示されなくなります。
私の問題は、当時何が許可されていたのかわからないことです...