Я пишу небольшой инструмент для управления людьми, зарегистрированными в ассоциации.SQL: один для многих, выберите только один
У меня есть стол USERS
и таблица CARDS
. Каждый пользователь может иметь более одной карты (поскольку срок действия карт истекает).
С помощью одного запроса я хотел бы извлечь ВСЕ информацию о пользователе, а также всю информацию о карте только для самой последней карты (поле: ИЗДАНИЕ).
Вот очень простой пример:
ПОЛЬЗОВАТЕЛЕЙ стол
IDUSER NAME SURNAME
------------------------
1 Robert Hill
КАРТОЧКИ стол
IDCARD IDOWNER ISSUEDATE DESC
----------------------------------------
1 1 2010-01-01 'CARD ONE'
2 1 2010-08-18 'CARD TWO'
В основном я хотел бы вернуться из моего запроса этих полей:
IDUSER NAME SURNAME IDCARD IDOWNER ISSUEDATE DESC
---------------------------------------------------------------
1 Robert Hill 2 1 2010-08-18 'CARD TWO'
Я пытался, но я не могу управлять :(
EDIT: Что произойдет, если карта памяти не связан с пользователем? (зарегистрирован один пользователь, но ассоциация еще не дала ему). Есть ли способ адаптировать этот запрос, чтобы в любом случае получить информацию о пользователе? Идея состоит в том, чтобы получить всю возможную информацию для каждого пользователя. Эта информация позже используется через JSON в приложении ExtJS ad.
Спасибо за ваши ответы.
Следуйте тегу 'great-n-per-group' для десятков других подобных вопросов по переполнению стека. –
«Что произойдет, если нет КАРТЫ, связанной с пользователем?» Что вы хотите? Либо никакие записи не могут быть возвращены, либо поля записи из таблицы CARDS могут быть установлены в NULL. – strager
Да, мое редактирование не было ясным, извините. Оптимальным было бы получить набор значений NULL для всех столбцов CARDS, если у пользователя еще нет карты. – Danilo