MySQL isfull函数在多表连接查询中的应用

avatar
作者
猴君
阅读量:0

ISFULL() 函数在 MySQL 中并不存在。但是,你可以使用 COUNT()GROUP BY 来实现类似的功能。假设你有两个表,一个是 orders(订单),另一个是 order_items(订单项),你想要找出哪些订单已经完全发货。

这里有一个简单的例子:

SELECT o.id AS order_id, COUNT(oi.id) AS total_items, SUM(oi.is_shipped) AS shipped_items FROM orders o JOIN order_items oi ON o.id = oi.order_id GROUP BY o.id; 

这个查询将会返回每个订单的 ID、订单项总数以及已发货的订单项数量。然后,你可以通过比较 total_itemsshipped_items 来判断订单是否已经完全发货。

如果你想要只显示已完全发货的订单,可以使用 HAVING 子句:

SELECT o.id AS order_id FROM orders o JOIN order_items oi ON o.id = oi.order_id GROUP BY o.id HAVING COUNT(oi.id) = SUM(oi.is_shipped); 

这个查询将只返回那些已经完全发货的订单 ID。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!