前提・実現したいこと
laravelでSQLの作成を行っているのですが、
2つのテーブルにwhere句で絞り込み条件を指定した後にunion句で結合させ、
その結合したものに対して更にwhere句で絞り込みを指定したいのですが、エラーが発生してしまい、出来ません。
laravelとsqlがあまり詳しくなく、調べたりしましたが解決できず、
何か原因など知っている方がいらっしゃれば教えていただきたいです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
ERROR: bind message supplies 0 parameters, but prepared statement "pdo_stmt_00000005" requires 11
該当のソースコード
php
1$a = A::select('name', 'code')->where('name', '太郎'); 2$b = B::select('name', 'code')->where('name', '太郎'); 3 4$union = $a->union($b)->toSql(); 5$query = DB::table(DB::raw("({$union}) as union_query")); 6$query->where('code', 'A111'); 7dd($query->get());
** 実現したいイメージSQL**
SQL
1select * 2from ( 3 select 'name', 'code' 4 from a 5 where 'name' = '太郎' 6 union (select 'name', 'code' 7 from b 8 where 'name' = '太郎') 9) as union_query 10 11 12select * 13from union_query 14where 'code' = 'A111' 15
試したこと
mergeBindings()を使用してみましたが、やりたいことは実現できませんでした。
補足情報(FW/ツールのバージョンなど)
laravel8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。