我有三个表growth_spaces
,equipment
并将growth_space_equipment
两个表链接在一起。我正在尝试编写一个查询来获取所有增长空间,这些增长空间具有我作为数组提供的所有设备。例如,如果阵列是('Mist Propagation
, Automated Curtain
) 我只想要同时拥有这两种设备的生长空间(而不是同时拥有这两种设备的空间)。
我将如何在 PostgreSQL 中编写这个?
我有三个表growth_spaces
,equipment
并将growth_space_equipment
两个表链接在一起。我正在尝试编写一个查询来获取所有增长空间,这些增长空间具有我作为数组提供的所有设备。例如,如果阵列是('Mist Propagation
, Automated Curtain
) 我只想要同时拥有这两种设备的生长空间(而不是同时拥有这两种设备的空间)。
我将如何在 PostgreSQL 中编写这个?
您可以使用
LEFT JOIN LATERAL
获取每个增长空间按字母顺序排序的所有设备名称的列表,并将其与另一个排序的元素列表进行比较:它的一个变体是比较 ID 列表而不是文本,这对大型集合表现更好: