Я использую три таблицы MySQL, которые выглядят так:
Таблица для учетных записей участников
| id | name | status |
-------------------------------------------
| 1 | mike | 0 |
| 2 | peter | 1 |
| 3 | john | 1 |
| 4 | any | 1 |
Таблица для списка друзей:
| myid | user | date |
------------------------------------------
| 10 | 2 | 2010-01-04 |
| 3 | 10 | 2010-09-05 |
| 4 | 10 | 2010-10-23 |
Таблица для пользователей галерей:
| fotoid | userid | pic1 |
------------------------------------------
| 101 | 2 | 1.jpg |
| 102 | 3 | 2.jpg |
| 103 | 4 | 3.jpg |
Я хочу присоединиться к этим трем таблицам и получить результат запроса, в котором будут перечислены пользователи, которых я добавил в список друзей, и те, кто добавил меня в список одновременно, все эти пользователи должны иметь статус '1 'из таблицы участников и покажите их фотографии из таблицы галереи.
В этом примере мой идентификатор «10». В таблице для галереи поле «MyID» представляет тех пользователей, которые добавили других пользователей к своим друзьям, в то время как «пользователь» является идентификатором добавленных пользователей.
Конечный результат в этом примере должен выглядеть следующим образом:
| id | name | status | pic1 |
------------------------------------------------
| 2 | peter | 1 | 1.jpg |
| 3 | john | 1 | 2.jpg |
| 4 | any | 1 | 3.jpg |
Как я могу это сделать?
mysql ОБЪЯСНИТЬ:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | extra
-------------------------------------------------------------------------------------------------------------------------------------------------
1 | primary | g | ALL | id | NULL | NULL | NULL | 7925 | Using where
1 | primary | a | eg_ref | id | id | 4 | g.id | 1 | Using where
2 |DEPENDENT SUBQUERY| a2 | index | id | NULL | NULL | NULL | 90734 | Using index; Using temporary; Using filesort;
2 |DEPENDENT SUBQUERY| f | index | rds_index |rds_index| 8 | NULL | 138945 | Using where;Using index;Using join buffer