Laravel
LaravelのUnionはカラム数を元テーブルと同じにしないとエラーになる
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
PR
Laravel の Union はカラム数を元テーブルと同じにしないとエラーになるので解決方法を記事にしました。
どんなエラーがでるか
SQLSTATE[21000]: Cardinality violation: 1222 The used SELECT statements have a different number of columns (SQL: (select `title`, `created_at` from `posts` where `title` is not null) union (select `title` from `items`))
こんなエラーがでます。
解決する方法
エラー文には、「異なる数のカラムが存在しています」とあります。
ですので、同じ数のカラムを select してあげればこのエラーは解決できると思います。
use App\Models\Item;
use App\Models\Post;
~~~
public function index()
{
$items = Item::select('title','created_at');
$results = Post::select('title','created_at')
->union($items)
->get();
dd($results);
}
まとめ
以上です。
Laravel で Union を使った時に出たエラーについて記事にしてみました。
誰かの参考になればと思います。
感想・苦情は TwitterDM にご連絡ください。
それでは!
人気記事
フィードバックのお願い
この記事のフィードバックがありましたらYoutubeの適当な動画にコメントしていただいたり、お問い合わせからご連絡ください。