Простые программисты. У меня есть 3 таблицы со следующими примерами записей.mysql: запрос нескольких записей в 3 таблицах?
tbl_members имеет:
mem_id | mem_fname | mem_lname
1 | Ryan | Layos
2 | Dhave | Sebastian
3 | Staven | Siegal
4 | Ma Ethel | Yocop
5 | Kelvin | Salvador
6 | Herbert | Ares
tbl_member_status имеет:
status_id | mem_id | leader_id | process_id
1 | 2 | 1 | 2
2 | 3 | 5 | 3
3 | 4 | 6 | 4
4 | 5 | 1 | 4
5 | 1 | 6 | 4
(tbl_member_status.mem_id чужд ключ к tbl_members.mem_id и leader_id также иностранный ключ к tbl_members.mem_id, потому что в моем случае элемент может быть лидером. 1 член 1 лидер)
tbl_process имеет:
process_id | process_type
1 | CONSOLIDATION
2 | PRE-ENCOUNTER
3 | ENCOUNTER
4 | POST-ENCOUNTER
(член имеет процесс принятия, который я использовал перечисление со значениями: УКРЕПЛЕНИЕ, PRE-ENCOUNTER, знакомст-, POST-ENCOUNTER и т.д.)
Мой вопрос теперь правильный запрос SQL в получении желаемый выходной запрос, подобный этому.
tbl_query_result
mem_id | member_fname | member_lname | leader_fname | leader_lname | process_type
2 | dhave | sebastian | Ryan | Layos | PRE-ENCOUNTER
5 | Kelvin | Salvador | Ryan | Layos | POST-ENCOUNTER
помните, что две колонны tbl_member_status имеет в виду один столбец tbl_members, который mem_id.
UPDATE:
то, что я сделал до сих пор:
SELECT member.mem_fname, member.mem_lname, leader.mem_fname, leader.mem_lname, tbl_process.process_type
FROM
tbl_member_status as mem_stats
INNER JOIN
tbl_members as member
INNER JOIN
tbl_members as leader
INNER JOIN
tbl_members ON mem_stats.member_id = member.mem_id
INNER JOIN
tbl_process ON tbl_process.process_id = mem_stats.process_id
WHERE
leader.mem_fname = 'Ryan'
Этот запрос получает все записи, даже если leader.mem_fname не равен 'Ryan'
Хороший вопрос. Обычно ваши коллеги-программисты любят видеть вашу собственную попытку, прежде чем отправлять их. – e4c5