Еще один пример соединения с запросом mysql

0

У меня есть следующие таблицы -

  1. таблица транзакций со следующими полями -

    transactionId, userId, merchantId

  2. Таблица пользователей с userID и details

  3. Торговый стол с merchantId и details

Могут быть некоторые записи транзакций, для которых merchantId имеет значение NULL.

Я также хочу получить отчет о транзакциях с данными merchantId и продавцом. Все транзакции должны быть в отчете. Для транзакций без идентификатора продавца поля торговца могут быть NULL.

Соединение LEFT, подобное этому, не возвращает записи для merchantId null, так как поле merchantId равно null в таблице транзакций -

Запрос:

SELECT vt.*,
       u.userDetails,
       m.merchantId,
       m.merchantDetails
FROM TRANSACTION AS vt
LEFT JOIN merchant AS m ON vt.merchantId = m.merchantId
JOIN users AS u ON vt.userId = u.userID;

Можно ли это сделать только в одиночку?

Теги:
join

1 ответ

0

Ваш запрос работает так, как должен. Он возвращает все транзакции из транзакции таблицы, и если merchantId имеет значение NULL, чем данные продавца, имеет значение null... но транзакция по-прежнему находится в списке.

Посмотрите сами (я вставил 4 транзакции, включая 1 с NULL в поле merchantId):

SQLFiddle DEMO

Ещё вопросы

Сообщество Overcoder
Наверх
Меню