gpt4 book ai didi

mysql - MySQL View 中丢失数据

转载 作者:行者123 更新时间:2023-11-29 07:44:27 25 4
gpt4 key购买 nike

我在 MySQL 数据库中设置了一个 View 。该 View 引用多个相关表并将它们连接在一起。下面以 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

关于mysql - MySQL View 中丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28245418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com