このクエリはほとんどのサーバーでうまく動作しますが、他のものとはうまく機能しません。 CPUの過負荷または空の結果が発生します。MySQL - AND条件の2ブロックでOR条件付きの継手
SELECT
M.id,
M.sender,
M.recipient,
M.date,
M.read,
U.ID
FROM
msg M,
users U
WHERE
(M.recipient='".$user_login."' and
M.deleted!=1 and
U.user_login=M.sender)
or
(M.sender='".$user_login."' and
M.deleted!=2 and
U.user_login=M.recipient)
ORDER BY M.date DESC
私はこれへの変更が、同じ問題があります:私は問題は2例でjointure句だと思う
SELECT
M.id,
M.sender,
M.recipient,
M.date,
M.read,
U.ID
FROM
msg M
LEFT JOIN
users U
ON
(M.recipient='".$user_login."' and
M.deleted!=1 and
U.user_login=M.sender)
or
(M.sender='".$user_login."' and
M.deleted!=2 and
U.user_login=M.recipient)
ORDER BY M.date DESC
を。
"id"と "ID"で大文字と小文字の問題があるとは思わない。
もちろん2つのクエリを作成できますが、確かに1つのクエリでこれを行う方法があります。
クエリをEXPLAINした結果を投稿できますか? – krasipenkov
いいえ、申し訳ありません。これはWordPressプラグインの一部であり、ユーザーはこの問題を報告しますが、デバッグ情報を取得する方法はわかりません。 – Jacques
あなたのデータベースにEXPLAIN SELECT M.id、M.sender ......を実行し、ここに結果を貼り付けてください。 – krasipenkov