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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

2回答

1170閲覧

Laravelにてjoinを複数つなげたい

ymbyuki---s

総合スコア0

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/09/24 05:59

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Laravelにてメモ帳のアプリのようなものを作成しております。
その中で、データベースから値を取ってくる際に、うまくいかず、困っております。
具体的には、Admins,Users,Memosの3つのテーブルがあり、Memosテーブルの中に、Adminのidと関連させるadmin_id、Usersのidと関連させるuser_idがあり、詳細画面にて管理者、対象ユーザ、メモ内容を取得したいと思っています。
今のところ対象のUserは1名のみです。

ご教授いただけますと幸いです。
よろしくお願いいたします。

発生している問題・エラーメッセージ

Admin、Userどちらか片方を取得することができますが、もう片方を取得することができません。
取得できる方は、上のjoinで記載した方になります。

該当のソースコード

PHP

1 $lesson = DB::table('memos') 2 ->join('admins', 'memos.admin_id', '=' ,'admins.id') 3 ->join('users', 'memos.user_id', '=', 'users.id') 4 ->where('memos.id', $id)->get();

試したこと

https://techfree.jp/devmemo/devmemo-2696

こちらの内容に沿ってやってみたのですが、同じ状況です。

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

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

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

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

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

guest

回答2

0

text

1その中で、データベースから値を取ってくる際に、うまくいかず、困っております

↑この表現が曖昧です、このデータでこうなりましたという質問にしてください

投稿2021/09/28 06:40

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

admins,users,memosのテーブル構造が不明なため推測になりますが、adminsテーブルとusersテーブルでカラム名の重複があるのではないでしょうか?(例えば、admins.nameとusers.nameなど)
DBファサードが提供するtableメソッドでは、カラム名が重複したときに片方しか出力されないように思いますので、asを利用したselect句を追加すると問題解消するかもしれません。

$lesson = DB::table('memos') ->join('admins', 'memos.admin_id', '=' ,'admins.id') ->join('users', 'memos.user_id', '=', 'users.id') ->select('memos.*', 'admins.name as admin_name', 'users.name as user_name') ->where('memos.id', $id)->get();

投稿2021/09/24 13:10

ryoluo

総合スコア134

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問