Join производит дублирующиеся строки и игнорирует оператор Where - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть две таблицы, и когда я соединяю их вместе, запрос приводит к дублированию строк в моих результатах.

Первичный идентификатор таблицы 1 повторяется снова и снова.

Предложение Where также игнорируется.Он возвращает строки с двумя полями в cmID cmIDtwo, если любое из них имеет значение, оно не должно возвращать их

Я попытался выполнить внутреннее соединение, но не может заставить его работать правильно.

Моя цель состоит в том, чтобы просмотреть таблицу заказов и присоединиться к любым существующим вопросам, которые клиент задал в отношении этого заказа, используя свой идентификатор.

Table 1:
ccOrder
ccOrder.ID,
ccOrder.cmID,
ccOrder.cmIDtwo,
ccOrder.ccShippingEmail 

Table 2
contactManager.contactManagerId
contactManager.email



My Query:

    SELECT 
    ccOrder.ID,
    ccOrder.cmID,
    ccOrder.cmIDtwo,
    ccOrder.ccEmail,
    ccShippingEmail, 

    contactManager.email 

    FROM ccOrder

    JOIN contactManager ON ccOrder.ccShippingEmail = contactManager.email 

    WHERE (ccOrder.cmID = 0 & ccOrder.cmIDtwo = 0) 

    AND contactManager.`email` != '' 

1 Ответ

0 голосов
/ 18 сентября 2018

Поработав над этим некоторое время, я обнаружил простое изменение WHERE (ccOrder.cmID = 0 & ccOrder.cmIDtwo = 0) на WHERE ccOrder.cmID = 0 И ccOrder.cmIDtwo = 0

исключеноповторяющиеся записи и возвращает ожидаемые результаты.

Люблю знать, почему, как и обычно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...