MYSQL SELECT Извлечение строк из двух таблиц с внешним ключом или без него - PullRequest
0 голосов
/ 17 ноября 2011

Мне нужна помощь с запросом MYSQL. У меня есть две таблицы, одна содержит список tickets, а другая - список members.

Билеты на стол: TICKET_ID, ID пользователя Участники таблицы: member_id

Участник может, но не обязан быть назначенным на тикет. То, что я хотел бы сделать, это выбрать все заявки, а затем, если в таблице заявок установлено поле member_id, также получить информацию об участнике.

Один из подходов состоит в том, чтобы выполнить SELECT * FROM Tickets, а затем перебрать в PHP и проверить, установлено ли поле member_id. Если установлено, то выполните другой запрос к таблице members, чтобы получить соответствующую информацию. Единственная проблема в том, что это будет большое количество запросов.

Есть ли способ получить все результаты в одном запросе на соединение?

Спасибо

Ответы [ 4 ]

2 голосов
/ 17 ноября 2011
Select *
from Tickets
Left Join Members On tickets.member_id = members.member_id
0 голосов
/ 17 ноября 2011

Попробуйте это:

SELECT t.ticket_id, m.member_id
FROM tickets AS t LEFT OUTER JOIN members AS m 
ON t.member_id = m.member_id

LEFT OUTER JOIN приведет к тому, что будут возвращены все результаты заявок и любое совпадение от участников, не дисквалифицируя записи заявок, поэтому это может помочь.

0 голосов
/ 17 ноября 2011
SELECT t.ticket_id, t.member_id FROM tikcets t LEFT JOIN members m ON t.member_id = m.member_id

Это даст вам все билеты, независимо от того, были ли они назначены участнику или нет.Вы должны добавить к запросу дополнительные поля, которые вы хотите получить.

0 голосов
/ 17 ноября 2011
select * from tickets left outer join members on tickets.member_id = members.ticket_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...