Я пытаюсь отобразить список записей элементов, и у меня есть несколько таблиц, которые я использую для отображения того, что мне нужно.Подзапрос MySQL - найти только первую запись в LEFT JOIN
Это легкая часть. Часть, в которой мне нужна помощь, - это таблица с множеством записей для каждой записи участника: История входа
Я хочу отобразить только первую строку для каждой записи участника, которая существует в таблице История входа. В качестве альтернативы, я, возможно, захочу перевернуть флоп и отобразить последнюю запись в таблице «История входа».
вот что у меня до сих пор:
SELECT m.memberid, m.membername, m.gender, mp.phone
FROM tbl_members m,
tbl_members_phones mp,
tbl_members_addresses ma
WHERE m.defaultphoneid = mp.phoneid
AND m.defaultaddressid = ma.addressid
Так что возвращает то, что ожидается.
2 колонки из tbl_members_login_history
Я хочу добавить к получившимся результатом: mh. loggedtime
, mh. ipaddy
Я знаю, добавив tbl_members_login_history
как LEFT JOIN будет возвращать дубликаты, поэтому я думаю, что должна быть Subquery необходимости здесь, чтобы вернуться только 1-й рекордом для этого memberid
, которая существует в tbl_members_login_history
.
Что меня беспокоит, так это отсутствие записи в таблице истории, я все же хочу отображать эту информацию о члене, но оставляю столбцы истории как NULL.
Будет ли это инцидентом с подзапросом? и если да, то как добавить такой тип LIMIT?
Из любопытства, являются ли телефон и адрес обязательным для пользователя? Если нет, я не думаю, что ваш запрос вернет информацию о другом члене, если один из них не знает, как он написан. – Sam
В этом случае да. Но вы правы, член не будет возвращен в результате без существующей записи. – coffeemonitor