Mysql Sql检索其他表中没有关系的字段

Mysql Sql检索其他表中没有关系的字段,mysql,sql,database,join,Mysql,Sql,Database,Join,我有两张桌子:顾客和订单。客户有许多订单,订单属于客户。可以批准订单(在上用“批准”字段标记)。 我想检索没有任何批准订单的所有客户。这包括没有任何订单的客户和订单未经批准的客户(批准时间=null)。 我能在没有子查询的单个查询中做到这一点吗?我知道这与“拥有”有关。虽然,它错过了小组。最后一个查询是:SELECT Customers.*,COUNT(Orders.id)cnt来自客户的左连接订单(Customers.id=Orders.Customer\u id)和(Orders.appro

我有两张桌子:顾客和订单。客户有许多订单,订单属于客户。可以批准订单(在上用“批准”字段标记)。 我想检索没有任何批准订单的所有客户。这包括没有任何订单的客户和订单未经批准的客户(批准时间=null)。
我能在没有子查询的单个查询中做到这一点吗?

我知道这与“拥有”有关。虽然,它错过了小组。最后一个查询是:
SELECT Customers.*,COUNT(Orders.id)cnt
来自客户的左连接订单(Customers.id=Orders.Customer\u id)和(Orders.approved\u at为空)
按客户分组。id
拥有cnt=0
我知道这与“拥有”有关。虽然,它错过了小组。最后一个查询是:
SELECT Customers.*,COUNT(Orders.id)cnt
来自客户的cnt
在(Customers.id=Orders.Customer\u id)和(Orders.approved\u at为空)上左加入订单
按客户分组。id
具有cnt=0
SELECT c.*
FROM Customers c
LEFT JOIN Orders o ON c.ID = o.CustomerID
WHERE o.ID IS NULL OR c.Approved_at IS NULL
SELECT ..., COUNT(Orders.id) AS cnt
FROM Customers
LEFT JOIN Orders ON (Customers.id = Orders.Customer_id) AND (Orders.approved_at is null)
HAVING cnt = 0