我有产品和供应商。每个产品都有一个uuid,每个提供者都有一份他们可以提供的产品的uuid列表。我如何选择给定(即由提供商uuid(提供商可以提供的所有产品?
Products:
+------+------+------+
| uuid | date | name |
+------+------+------+
| 0 | - | - |
| 1 | - | - |
| 2 | - | - |
+------+------+------+
Providers:
+------+----------------+
| uuid | array_products |
+------+----------------+
| 0 | [...] |
| 1 | [...] |
| 2 | [...] |
+------+----------------+
select p.name, u.product_uuid
from products p
join
(
select unnest(array_products) as product_uuid
from providers where uuid = :target_provider_uuid
) u on p.uuid = u.product_uuid;
但是,请注意,您的数据设计并不高效,而且比标准化的数据设计更难处理。