質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

4857閲覧

sqlでunion後のselect結果に対してwhere句で条件を指定することはできるのか

meron88

総合スコア50

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/11/09 07:58

前提・実現したいこと

sql初心者です。現在laravelのクエリビルダ等を使用しsqlの作成を行っております。

AテーブルとBテーブルをunionし、そのselect結果をwhereで条件指定することは可能でしょうか?
よろしくお願いいたします。

該当のソースコード

SQL

1$a = A::select(a.*); 2$b = B::select(b.*); 3 4$query = $a->union($b);←これに対してwhere句を指定したい 5

補足情報(FW/ツールのバージョンなど)

laravel8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

投稿2021/11/09 09:53

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meron88

2021/11/10 01:53

ありがとうございます! 参考にします。
guest

0

ベストアンサー

SQLでできるかと聞かれれば出来ます。

sql

1WITH c AS ( 2 SELECT 3 name 4 FROM 5 ( SELECT 'John' AS name ) a 6 UNION ALL 7 SELECT 8 name 9 FROM 10 ( SELECT 'Jane' AS name ) b 11) 12SELECT 13 c.name AS name 14FROM 15 c 16WHERE 17 c.name = 'John' 18;

plain

1name 2---- 3John

Larabelのクエリビルダでも出来ないことはないようです。
Stackoverflowで似たような質問が投稿されているので参考になると思います。

Laravel has no native support for common table expressions.

I've created a package for it: https://github.com/staudenmeir/laravel-cte

You can use it like this:

php

1$query = DB::table('table1')->select('id'); 2 3$result = DB::table('table2') 4 ->withExpression('main', $query) 5 ->whereIn('table2.id', DB::table('main')->select('id')) 6 ->get();

postgresql - How to use WITH clause in Laravel Query Builder - Stack Overflow

投稿2021/11/09 08:15

KAOsaka

総合スコア531

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meron88

2021/11/09 08:19

こちらで実現できそうです。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問