Я пытаюсь получить информацию из трех таблиц в одном запросе. Я не знаю, возможно ли это сделать ... то, что я пробовал до сих пор, не сработало, но я также не настолько разбираюсь в SQL.Показать строку или NULL в запросе SQL
У меня есть три таблицы: registration
, который содержит информацию о регистрации, experience
, которое имеет выбор событий для клиента (если они выбрали ужин, обед, один день и т.д.), и additionalInfo
, который содержит дополнительную информацию о событии таких как их выбор для конкретных семинаров во время мероприятия. registration
и experience
всегда будут иметь значения, но additionalInfo
не будет гарантированно иметь значения. То, что я хочу получить, заключается в одном запросе, чтобы получить регистрацию и выбор событий, а если есть что-то в additionalInfo
, чтобы получить это или вернуть NULL
.
Я пытаюсь запрос:
SELECT registration.firstName, registration.lastName, registration.phone, experience.options, additionalInfo.workshops
FROM registration, experience, additionalInfo
WHERE registration.identifier = experience.identifier
AND experience.paid = 'Yes'
AND registration.eventName = 'march2013'
AND additionalInfo.identifier = registration.identifier
ORDER BY registration.lastName ASC
Этот запрос возвращает только значение, где additionalInfo.identifier
существует, но, как я сказал, это не гарантируется существование.
вопроса уже были дан ответ, но я могу только добавить, что «ASC», как правило, не требуется, это стандартное поведение ANSI для упорядочения. Поэтому «ORDER BY registeration.lastName» будет достаточно. Как правило, вы явно используете ASC, когда заказываете несколько направлений в нескольких полях. – Trent