たとえば、2つのテーブルがあります
user_table level_table
================== ===================
| name | levelid | | id | levelname |
================== ===================
| tom | 1 | | 1 | beginner |
------------------ -------------------
| jon | 2 | | 2 | intermed |
------------------ -------------------
| tom | null | | 3 | expert |
------------------ -------------------
| jon | 1 |
------------------
nullの場合、「レベルなし」などの定義済みテキストが表示されるレベル名のみのユーザーテーブルを選択する必要があります。同一の列ヘッダーはありません。したがって、この右のものではなく、左のもののように表示されます。
Right result Wrong result
================== ==================
| name | level | | name | level |
================== ==================
| tom | beginner | | tom | beginner |
------------------ ------------------
| jon | intermed | | jon | beginner |
------------------ ------------------
| tom | no level | | tom | beginner |
------------------ ------------------
| jon | beginner | | jon | beginner |
------------------ ------------------
合体を試みましたが、すべてのレベル名行が同じ結果を示すという間違いがあるようです。
SELECT name,
COALESCE(
(SELECT levelname FROM user_table,level_table WHERE levelid=id),
'no level') AS level
FROM user_table