追加したいカラムが3つあるとしまして、そのうち2つはフォームからの入力値で、残り1つは別テーブルのIDをWHEREで引っ張ってきてINSERTしたい場合、INSERT...VALUES()とINSERT...SELECT構文を組み合わせないとダメかと思うのですが、組み合わせるとうまくいきません。2つの文に分けるしかないのでしょうか?
やりたいことは下の感じのSQLです。が、解釈してくれません。
INSERT INTO room(A, B, C) VALUES (1, 2, SELECT other_table.id FROM other_table WHERE other_table.id = 1");
No.1ベストアンサー
- 回答日時:
おつかいのMySQLのバージョンはサブクエリがつかえますか?
バージョンによって仕様が大幅に異なりますので、そのあたりを
提示した方がよろしいかと。
ちなみに表示のSQL文を見る限り
SELECT other_table.id FROM other_table WHERE other_table.id = 1
としても、idで検索してidを返しているので、1しか返って来ないのでは?
(微妙に文法違反もあるし)
こんな感じで再度テストしてみてください
INSERT INTO `room`(`A`, `B`, `C`)
VALUES ('1', '2', (SELECT `data` FROM `other_table`WHERE `id` = 1));
この回答への補足
ご回答ありがとうございます。
MySQLはバージョン5です。
昔はサブクエリ使えませんでしたね…。
ご提示いただいたSQLでテストしてみましたがやっぱりうまくいきませんでした。PDOのprepare利用してます。
すいません、うまくいきました。さっきは括弧の数間違えてました。ありがとうございました。
()でSELECTをくくればよかっただけだったんですね…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- PHP php エラー 2 2022/10/23 16:43
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
外部キーが設定されているテーブルのupdateについて
PostgreSQL
-
外部参照してるキーを主キーにすることは可能?
その他(データベース)
-
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
-
4
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
5
結合テーブルでINSERTする方法について
SQL Server
-
6
select insertで複数テーブルから値を取得したい
Oracle
-
7
データベースの1要素に複数データを格納したい
その他(データベース)
-
8
チェックボックス付きのテーブルから、チェックの付いた行のみの値を取得したい
JavaScript
-
9
データベースのINT型項目にNULLはNG?
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
VIEWの元のテーブルのindexって...
-
insertを高速化させたい
-
副問合せの書き方について
-
SQL Left Join で重複を排除す...
-
ある条件の最大値+1を初番する...
-
selectした大量データをinsert...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
一つ前のレコードの値と減算し...
-
my_itemsテーブルのIDにAUTO_IN...
-
期間の重複を調べるSQL文につい...
-
1対多結合で多を絞り込み条件と...
-
SELECT~LIKE~の結果が変
-
1テーブル&複数レコードの更新...
-
MySQLにてCOUNTした値を更にCOUNT
-
エクセルの関数について教えて...
-
Unionした最後にGROUP BYを追加...
-
SQLサーバから、項目の属性(型...
-
バインド変数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
副問合せの書き方について
-
マイクラPC版のコマンドで効率...
-
Unionした最後にGROUP BYを追加...
-
selectした大量データをinsert...
-
SQLにて特定の文字を除いた検索...
-
[SQLServer] テーブル名からカ...
-
1テーブル&複数レコードの更新...
-
inner joinをすると数がおかし...
-
クエリ表示と、ADOで抽出したレ...
-
ある条件の最大値+1を初番する...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
insertを高速化させたい
-
PL/SQLの変数について
-
キー毎の、ある列のmaxのレコー...
おすすめ情報