Mysql 如果四个表中都有匹配项,则内部联接仅返回值

Mysql 如果四个表中都有匹配项,则内部联接仅返回值,mysql,sql,Mysql,Sql,我有下面的internaljoin语句,只有当四个表中的订单号都匹配时,它才会返回结果 我需要它在主表KC_Orders中包含每个结果,而不考虑$sql中每个内部联接表的等效内容 我知道这是内部连接的要点,但我需要它做些别的事情 $sql = "SELECT * FROM `KC_Orders` INNER JOIN `KC_Payments` ON KC_Orders.orde

我有下面的
internaljoin
语句,只有当四个表中的订单号都匹配时,它才会返回结果

我需要它在主表
KC_Orders
中包含每个结果,而不考虑
$sql
中每个
内部联接
表的等效内容

我知道这是内部连接的要点,但我需要它做些别的事情

  $sql = "SELECT * 
            FROM `KC_Orders` 
                  INNER JOIN `KC_Payments` 
                        ON KC_Orders.orderNumber = KC_Payments.orderNumber  
                  INNER JOIN `KC_OrderStatus`  
                        ON KC_Orders.orderNumber = KC_OrderStatus.orderNumber 
                  INNER JOIN `KC_Statuses` 
                        ON KC_OrderStatus.statusID = KC_Statuses.statusID";
    $AllOrders = $db->query($sql);
使用左外连接

SELECT *
FROM
    `KC_Orders`
    LEFT JOIN `KC_Payments`
        ON KC_Orders.orderNumber = KC_Payments.orderNumber
    LEFT JOIN `KC_OrderStatus`
        ON KC_Orders.orderNumber = KC_OrderStatus.orderNumber
    LEFT JOIN `KC_Statuses`
        ON KC_OrderStatus.statusID = KC_Statuses.statusID
如果始终存在可用状态,则可以保留
KC_status
表的内部联接


。。。表示将返回
A
中的所有记录,并且仅返回
B
中与
A
中的记录匹配的记录。即使
B
中没有匹配的记录,也会返回
A
中的记录使用左外联接

SELECT *
FROM
    `KC_Orders`
    LEFT JOIN `KC_Payments`
        ON KC_Orders.orderNumber = KC_Payments.orderNumber
    LEFT JOIN `KC_OrderStatus`
        ON KC_Orders.orderNumber = KC_OrderStatus.orderNumber
    LEFT JOIN `KC_Statuses`
        ON KC_OrderStatus.statusID = KC_Statuses.statusID
如果始终存在可用状态,则可以保留
KC_status
表的内部联接


。。。表示将返回
A
中的所有记录,并且仅返回
B
中与
A
中的记录匹配的记录。即使
B
中没有匹配的记录,也会返回
A
中的记录使用左外联接

SELECT *
FROM
    `KC_Orders`
    LEFT JOIN `KC_Payments`
        ON KC_Orders.orderNumber = KC_Payments.orderNumber
    LEFT JOIN `KC_OrderStatus`
        ON KC_Orders.orderNumber = KC_OrderStatus.orderNumber
    LEFT JOIN `KC_Statuses`
        ON KC_OrderStatus.statusID = KC_Statuses.statusID
如果始终存在可用状态,则可以保留
KC_status
表的内部联接


。。。表示将返回
A
中的所有记录,并且仅返回
B
中与
A
中的记录匹配的记录。即使
B
中没有匹配的记录,也会返回
A
中的记录使用左外联接

SELECT *
FROM
    `KC_Orders`
    LEFT JOIN `KC_Payments`
        ON KC_Orders.orderNumber = KC_Payments.orderNumber
    LEFT JOIN `KC_OrderStatus`
        ON KC_Orders.orderNumber = KC_OrderStatus.orderNumber
    LEFT JOIN `KC_Statuses`
        ON KC_OrderStatus.statusID = KC_Statuses.statusID
如果始终存在可用状态,则可以保留
KC_status
表的内部联接



。。。表示将返回
A
中的所有记录,并且仅返回
B
中与
A
中的记录匹配的记录。即使在
B
中没有匹配的记录,也会返回
A
中的记录。听起来您想要的是
外部联接
而不是
内部联接

如果需要KC_Orders表中的所有行,则将该表放在from子句的第一位,并对其他表使用左联接。(OUTER关键字不是必需的。)这将返回KC_Orders表中的所有行,即使在其他表中找不到匹配的行。将返回空值以代替“缺少”行中的值


听起来您想要的是
外部联接
而不是
内部联接

如果需要KC_Orders表中的所有行,则将该表放在from子句的第一位,并对其他表使用左联接。(OUTER关键字不是必需的。)这将返回KC_Orders表中的所有行,即使在其他表中找不到匹配的行。将返回空值以代替“缺少”行中的值


听起来您想要的是
外部联接
而不是
内部联接

如果需要KC_Orders表中的所有行,则将该表放在from子句的第一位,并对其他表使用左联接。(OUTER关键字不是必需的。)这将返回KC_Orders表中的所有行,即使在其他表中找不到匹配的行。将返回空值以代替“缺少”行中的值


听起来您想要的是
外部联接
而不是
内部联接

如果需要KC_Orders表中的所有行,则将该表放在from子句的第一位,并对其他表使用左联接。(OUTER关键字不是必需的。)这将返回KC_Orders表中的所有行,即使在其他表中找不到匹配的行。将返回空值以代替“缺少”行中的值


听起来你想要左/右
外部连接
..?听起来你想要左/右
外部连接
..?听起来你想要左/右
外部连接
..?听起来你想要左/右
外部连接
。。。?