在完整的外关节之后是否有 where 或 group by for 以显示负数?
Is there a where or group by for after a full outer joint to show the negative?
我正在尝试查询一个 DB sql oracle,它结合了 2 tables 数据但显示了没有任何订单的位置。
我已经用主要公司的 Mile 的相关网格创建了一个 location_t。我已经为网格提供了一个映射到客户 table.
的位置 ID
我需要编写一个查询来显示没有客户订单的网格。
我已经开始使用完全外连接进行查询
Selectcustomer.location_id,位置-t.grid_location
来自客户
全外连接 location_t
在 customer.location_Id = location_t.location_Id
这有效,但当然会为所有未使用的 ID 提供带 - 的结果。
是否有一个 where 子句,它只会在没有客户订购的情况下显示空 ID。
也欢迎提供更好的方法示例。谢谢
I need to write a query which shows the grids that have no Customer orders.
假设你真的想要没有顾客的地点,那么我想到了not exists
:
select l.*
from location_t l
where not exists (select 1
from customer
where c.location_Id = l.location_Id
);
将网格左连接到客户,然后要求仅返回客户为空的行:
SELECT
*
FROM
location_t l
left outer join customer c on c.location_Id = l.location_Id
WHERE
c.location_id IS NULL
当您执行 WHERE 时,将连接列指定为空值,或者您知道永远不会自然包含空值的另一列(例如,如果某些客户自然没有中间名,则不要使用客户的中间名,因此该列中有空值作为自然数据的一部分)
我正在尝试查询一个 DB sql oracle,它结合了 2 tables 数据但显示了没有任何订单的位置。
我已经用主要公司的 Mile 的相关网格创建了一个 location_t。我已经为网格提供了一个映射到客户 table.
的位置 ID我需要编写一个查询来显示没有客户订单的网格。
我已经开始使用完全外连接进行查询
Selectcustomer.location_id,位置-t.grid_location 来自客户 全外连接 location_t 在 customer.location_Id = location_t.location_Id
这有效,但当然会为所有未使用的 ID 提供带 - 的结果。
是否有一个 where 子句,它只会在没有客户订购的情况下显示空 ID。
也欢迎提供更好的方法示例。谢谢
I need to write a query which shows the grids that have no Customer orders.
假设你真的想要没有顾客的地点,那么我想到了not exists
:
select l.*
from location_t l
where not exists (select 1
from customer
where c.location_Id = l.location_Id
);
将网格左连接到客户,然后要求仅返回客户为空的行:
SELECT
*
FROM
location_t l
left outer join customer c on c.location_Id = l.location_Id
WHERE
c.location_id IS NULL
当您执行 WHERE 时,将连接列指定为空值,或者您知道永远不会自然包含空值的另一列(例如,如果某些客户自然没有中间名,则不要使用客户的中间名,因此该列中有空值作为自然数据的一部分)