2017-06-28 21 views
0

最後に挿入された2つのテーブルから値を挿入しようとしています。このコードはうまくいくはずですが、SELECT MAX(users.id)にエラーが表示されます。私は正しいと確信しています。他に何が間違っていますか?mysqlの2つのテーブルから選択する

$query1 = "INSERT INTO post(postid, userid, readornot) 
      SELECT MAX(post.postid), SELECT MAX(users.id), 
      :readornot FROM post, users ";  
$select1 = $db->prepare($query1); ':readornot' => $readornot));  
+0

と思います。 –

+1

@jeroenここで列をバインドしようとしていますね。編集:あなたのコメントを削除し続ける*笑!* –

+0

@ Fred-ii-いいえ、私はそれが 'readornot'に挿入される単なる価値だと思います。 – jeroen

答えて

3
$query1 = "INSERT INTO post(postid, userid, readornot) 
      VALUES (
      (SELECT MAX(post.postid) FROM post) p, 
      (SELECT MAX(users.id) FROM users) u, 
      :readornot 
      )";  
$select1 = $db->prepare($query1); ':readornot' => $readornot)); 

このような何か、私はあなたが列/テーブルを結合することができない、一つには

+0

ありがとうございます。これは私が探していたものです。しかし、今私はエラーメッセージ 'あなたはターゲットテーブル'を指定することはできません –

+0

私は前に気づいていなかった:あなたが挿入先と同じテーブル(投稿)から選択しています。 MySQLはそれを好まない。 –

+0

テーブルに何を保存しているのか分かりにくいです。あなたは何を保存しようとしていますか(なぜ、どうやってそれを試してみませんか) –

関連する問題