Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL视图中缺少数据_Mysql - Fatal编程技术网

MySQL视图中缺少数据

MySQL视图中缺少数据,mysql,Mysql,我在MySQL数据库中设置了一个视图。该视图引用多个相关表并将它们连接在一起。下面是一个select语句作为示例进行说明: SELECT orders.id, orders.`name`, orders.total, line_items.id, line_items.order_id, line_items.sub_total, order_fees.id, order_fees.order_id, order_f

我在MySQL数据库中设置了一个视图。该视图引用多个相关表并将它们连接在一起。下面是一个select语句作为示例进行说明:

    SELECT
    orders.id,
    orders.`name`,
    orders.total,
    line_items.id,
    line_items.order_id,
    line_items.sub_total,
    order_fees.id,
    order_fees.order_id,
    order_fees.`name`,
    order_fees.fee
    FROM
    orders
    INNER JOIN line_items ON line_items.order_id = orders.id
    INNER JOIN order_fees ON order_fees.order_id = orders.id
我遇到的问题是,订单可能会或可能不会有额外的相关费用。似乎发生的情况是,当order_fees表中给定的订单不存在任何记录时,select语句将不会返回订单


如何设置此选项,以便从查询返回所有订单,而不管是否存在关联的记录?

使用
左联接
而不是
内部联接

SELECT
    orders.id,
    orders.`name`,
    orders.total,
    line_items.id,
    line_items.order_id,
    line_items.sub_total,
    order_fees.id,
    order_fees.order_id,
    order_fees.`name`,
    order_fees.fee
    FROM
    orders
    Left JOIN line_items ON line_items.order_id = orders.id
    Left JOIN order_fees ON order_fees.order_id = orders.id

用户离开外部联接而不是内部联接。当您执行内部联接时,它将只返回两个表中可用的记录。如果使用左外联接,则它将返回左表中的所有记录。

Yay!非常感谢。成功了!顺便说一句,我会投票给这个答案,如果我不只是一个声誉点可以这样做。谢谢,对不起。。。作为一个用户而不仅仅是一个空闲的读卡器来堆叠Exchange是非常新的。