2016-05-15 7 views
0

私は、ユーザーが最新のブログにコメントを挿入できるようにしようとしています。しかし、INSERT文を構造化しようとすると問題が発生しました。基本的に、blog_idの主キーはブログテーブルにあり、コメントテーブルには存在しないことに気付きました。ですから、私は他のテーブルから最高のblog_idを取得し、それをINSERTステートメントに入れるにはどうすればいいでしょうか?問題IDを他のテーブルから挿入する

INSERT INTO comments(blog_id,user_id,user_post) 
SELECT MAX(blog_id) 
    , $ud_us AS er_id 
    , $ud_user_post 
    FROM comments         
+2

ユーザーは古いブログにコメントすることはできません。ブログIDを隠しフォームフィールドとしてフォームに入れることはできませんか? –

+1

あなたのユースケースは私には分かりません。しかし、なぜ2つのSQL文に問題を分割しないでください。 1つはブログIDを取得するためのもので、もう1つはコメントを挿入するものです。 –

+0

この最大のブログIDの概念は使用できません。別のユーザーがコメントを作成しているときに、別のユーザーが新しいブログを作成するとどうなりますか。このコメントを間違ったブログに添付します – RiggsFolly

答えて

0

joinを使用して、異なるテーブルのデータをクエリします。

INSERT INTO comments (blog_id, user_id, user_post) SELECT 
    MAX(btn.id), 
    $ud_us AS er_id, 
    $ud_user_post 
FROM 
    comments c 
INNER JOIN <blog_table_name> btn ON c.blog_id = btn.id 
WHERE 
    <btn.columnA = ???> 
関連する問題