列の値を使用してテーブルを結合するにはどうすればよいですか?
以下にリストされている3つのテーブルがあります。
messages_table
----------------------------------------------------------------------------- msg_id | msg_sub | msg_to | to_user_type | msg_from | from_user_type ----------------------------------------------------------------------------- 001 | test | 88 | manager | 42 | admin 002 | test2 | 88 | manager | 94 | manageradmin_table
-------------------------— admin_id | admin_name -------------------------— 001 | Super Adminmanager_table
--------------------------- manager_id | manager_name --------------------------- 88 | Mandela 94 | Kristen
以下に示すように、SQLクエリを使用して目的の出力を取得するにはどうすればよいですか。つまり、次の基準が満たされた場合に、列の値に関してテーブルを結合します。
その場合
user_type = adminは、と結合する必要がありadmin_tableます。その場合
user_type = managerは、と結合する必要がありmanager_tableます。
必要な出力:
-----------------------------------------------------
msg_id | msg_sub | msg_to_name | msg_from_name
-----------------------------------------------------
001 | test | Mandela | Super Admin
002 | test2 | Mandela | Kristen
つまり、列の値に基づいて結合SQLクエリを取得します。
編集:
サーバーサイドコーディングからではなく、SQLクエリからデータをフェッチしたい。
ここからこのクエリを試しました。つまり、Winfredのアイデア(回答済み)
しかし、理解できませんでした。
msg_by_usertypeは列ベースであり、値managerは選択する必要manager_tableがあり、管理者の場合はadmin_table