これを正確に表現する方法がわからないので、ここで説明します。2つのINSERT INTOに参加する
私は小さなwebappを設計しており、私のデータベースにはusers
、commits
、およびuserCommits
のテーブルがあります。 users
には自動番号であるIDがあり、commits
には同様のID列があるため、最小限です。今すぐuserCommits
は、次の図に示すようにそれらをリンクします。
私がやったことはINSERT INTO commits (...) VALUES (...)
であるが、それに伴う問題は、userCommits.commitID
が正しいコミット等しくなるように、私はuserCommits
にリンクを作成するにはどうすればよいです。私はちょうど最新のものを見つけてそのIDを使うためにテーブルに問い合わせるべきではないと思う。何とかIDに加わる方法はありますか?
私はこのようなクエリを実行して、電子メールでユーザーにコミットをすべて一覧表示できることを知っています。
SELECT
commits.id,
commits.cName,
users.email
FROM
commits
INNER JOIN userCommits ON commits.id = userCommits.commitID
INNER JOIN users ON userCommits.userID = users.id
WHERE users.email = "[email protected]"
私が今やっていることは、ユーザーがコミットを作成したときにデータベースに挿入することです。
これはまさに私が求めていたものです。私が1時間探しているうちに、どうやってこれを見つけられなかったのか分かりません。 – MatthewEnderle
すべてのDBはそれほど変わっていませんが、sqlserverを使って作業すると、MySQLはSELECTのscope_identity()を除いてMySQLとかなりよく似ていますが、oracleはinsert文自体に特定の 'RETURNING'行の挿入中に計算された値を返すために使用できます。時にはグーグルリングは、あなたが何を1つのDBで知っている方が簡単です - 私は多くのMySQLを使用していませんが、 "MySQL同等の選択スコープのアイデンティティ"を検索すると、 –