У меня есть следующие таблицы базы данных:MySQL Как правильно выполнить этот подзапрос?
People
+--------+------------+------------+-----------+
| f_ID | F_NAME | STUFF | F_VALUE |
+--------+------------+------------+-----------+
| 1 | Zoe | blah | 101 |
| 2 | Jimy | derka | 202 |
| 3 | Kate | shazam | 20 |
| 4 | Sue | pow | 2 |
+--------+------------+------------+-----------+
RESULTS
+------- ---+------------+
| F_ID | RESULTS |
+-----------+------------+
| 1 | Good |
| 4 | OK |
+-----------+------------+
Как создать запрос для отображения всех записей в таблице людей, как это:
+------------+------------+
| NAME | GRADE |
+------------+------------+
| Zoe | Good |
| Jimy | N/A |
| Kate | N/A |
| Sue | OK |
+------------+------------+
Я попробовал этот запрос, но он не работает правильно :
SELECT
NAME
GRADE
(
SELECT
p.F_NAME AS NAME,
r.RESULTS
FROM People p
JOIN RESULTS r ON r.F_ID=p.F_ID
UNION
SELECT
p.F_NAME AS NAME,
"N/A"
FROM People p
JOIN RESULTS r ON r.F_ID=p.F_ID
)a
+1, но 'COALESCE' вместо IF будет более кратким. – bfavaretto
@bfavaretto Не могли бы вы показать пример этого. Я не уверен, слышал ли я когда-нибудь о COALESCE. Спасибо – stackoverflow
@bfavaretto Согласен, обновил ответ. –