Access 2007左连接和空值

时间:2010-12-06 16:01:05

标签: sql database ms-access ms-access-2007

我运行了以下简单查询,如下例所示: (简单来说,一个订单有1到N个项目,外键是表项目中的order_id)

SELECT orders.*, items.*
FROM orders
LEFT JOIN
items ON orders.id= items.order_id

这显示如下:

order.id    item.id
   1           34
   1           22
   1           90
   2           44
   2           19
   2           21
   2           22

我想输出如下:

order.id    item.id
   1           34
               22
               90
   2           44
               19
               21
               22

如何在Access 2007上实现这一目标?

提前谢谢你, 米卢德B.

1 个答案:

答案 0 :(得分:1)

我能想到的唯一方法就是使用聚合进行自我加入。在您的应用程序中更容易/更好地处理。

SELECT
         IIF( i2.id = MIN(i.id), i.order_id, NULL) AS order_id,
         i2.id AS item_id
FROM     items i
         INNER JOIN orders o
         ON       o.id= i.order_id
         LEFT JOIN items i2
         ON       i2.order_id=i.order_id
GROUP BY i.order_id
ORDER BY i.order_id,
         i2.id