好吧,如果其他人感兴趣,这是答案:
显然,有一个名为“field_data_commerce_product”的表,其中有一个用于 Line Item ID 的“entity_id”列,以及一个用于 Product ID 的“commerce_product_product_id”列。该表允许 db_select 轻松连接 Orders、Line Items 和 Products 以实现我询问的那种查询。
这是完整的查询:
<?php
// Assuming we have $user populated with the user's ID:
$query = db_select('commerce_order', 'cord');
$query->join('commerce_line_item', 'li', 'cord.order_id = li.order_id');
$query->join('field_data_commerce_product', 'prod', 'li.line_item_id = prod.entity_id');
$query->condition('cord.uid', $user, '=')
->condition('cord.status', 'completed', '=')
->fields('prod', array('commerce_product_product_id'));
$result = $query->execute();
?>
这将返回给定用户已经拥有的所有产品 ID。