列の値を使用してテーブルを結合するにはどうすればよいですか?
以下にリストされている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 | manager
admin_table
-------------------------— admin_id | admin_name -------------------------— 001 | Super Admin
manager_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