我运行了以下简单查询,如下例所示: (简单来说,一个订单有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.
答案 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