首页 > 解决方案 > Join 产生重复的行并忽略 Where 语句

问题描述

我有两个表,当我将它们连接在一起时,查询会在我的结果中产生重复的行。

表 1 的主 ID 一遍又一遍地重复。

Where 子句也被忽略了。它返回在 cmID cmIDtwo 中具有两个字段的行,如果其中任何一个具有值,则不应返回它们

我尝试了内部连接,但无法使其正常工作。

我的目标是查看订单表并加入客户通过使用他们的 ID 提出的关于该订单的任何现有问题。

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` != '' 

标签: mysql

解决方案


在研究了一段时间后,我发现 WHERE (ccOrder.cmID = 0 & ccOrder.cmIDtwo = 0) 的简单更改为 WHERE ccOrder.cmID = 0 AND ccOrder.cmIDtwo = 0

消除重复条目并返回预期结果。

很想知道为什么因为 & 通常有效。


推荐阅读