Допустим, у меня есть 2 таблицы.
Первая таблица - это список персон.У пользователя может быть много персон.
mysql> select id, user_id, name from personas_personas;
+----+---------+--------------+
| id | user_id | name |
+----+---------+--------------+
| 8 | 1 | startup |
| 9 | 1 | nerd |
| 10 | 1 | close |
| 12 | 2 | Nerd |
| 13 | 2 | Startup |
| 14 | 2 | Photographer |
+----+---------+--------------+
6 rows in set (0.00 sec)
Теперь у меня есть еще одна таблица, называемая "утверждениями".
mysql> select id, from_user_id, to_user_id, persona_id from friends_approvals;
+----+--------------+------------+------------+
| id | from_user_id | to_user_id | persona_id |
+----+--------------+------------+------------+
| 2 | 1 | 2 | 8 |
| 3 | 1 | 2 | 9 |
+----+--------------+------------+------------+
2 rows in set (0.00 sec)
Если from_user
хочет утвердить to_user
для персоны, то вставляется запись.
Я пытаюсь выполнить этот запрос ...
Учитывая пользователя, найти все его персонажи.Затем для каждой персоны определите, одобрено ли оно для определенного to_user
.Если это так, верните is_approved
= 1 в наборе результатов.В противном случае верните is_approved
= 0 в наборе результатов.
Итак, вот с чего я начну:
SELECT *
FROM personas_personas
WHERE user_id = 1
LEFT JOIN friends_approvals ON
...but i don't know where to go from here.
Итак, в конечном наборе результатов должны быть все столбцы в personas_personas
таблица, а затем также is_approved
для каждого из результатов.