コードに次のクエリが表示されています。
INSERT INTO comments (post_id, user_id, table_code, content, author_id, pinged_id, date_time)
SELECT ?,?,?,?,?,?,?
FROM qanda qa, users u
WHERE qa.id=? and author_id IS NULL
limit 1;
私はすでに上記のクエリを書いています..今, user u
、私は私のクエリで冗長であると信じています。私は正しいですか?
なぜ私がこの質問をしているのか知っていますか?私のすべてのコードの背後には常に理由があるからです。今、これを書いた理由を思い出せません, users u
。だから私はそれを取り除くことを心配しています。
とにかく、削除, users u
すると何かが変わりますか?またはそれは完全に冗長ですか?
ためauthor_id
に属するqanda
テーブルにジョイン暗黙users
テーブルには目的を果たしていません。実際、結合条件がないため、これはクロス結合です。これは、実際のパフォーマンスの低下である可能性があることを意味します。次の簡略化されたINSERT
ステートメントを使用してみることができます。
INSERT INTO comments (post_id, user_id, table_code, content, author_id,
pinged_id, date_time)
SELECT ?,?,?,?,?,?,?
FROM qanda qa
WHERE qa.id=? AND author_id IS NULL
LIMIT 1
しかし、これはそもそもusers
テーブルがそこで何をしているのかを説明するものではありません。たぶん、あなたはこのクエリを他の誰か(または何か)から継承し、かつては正当な理由で結合が使用されていました。とにかく、あなたが簡単にそうすることができる間、今すぐ借金を取り除いてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加