当前位置: 首页 > 知识库问答 >
问题:

选择ids Postgresql数组的公共元素

裴嘉良
2023-03-14

因此,我要在Postgresql中解决这个问题,对于用户提供的给定数量的classId,我必须向他返回所述类的公共属性。

我有三个表来表示模型(一个类有多个属性,一个属性可以在多个类中)

表类:

---------------------------
| Id | Name | Description |
---------------------------

表格属性:

---------------------------
| Id | Name | Description |
---------------------------

最后表类属性

------------------------
| ClassId | PropertyId | 
------------------------

因此,用户给了我一个带有classId的数组,我必须向他返回所有类的所有公共属性(如我前面所说)

到目前为止,我只能用以下代码返回所有类的每个属性:

select p.*
from properties as p
inner join ClassProperties as cp on cp.propertyid= p.id
where cp.classid = any ('{88d5fe8f-e19e-40b4-bc65-83ac64f825b0, a2a63bea-
aeee-4d3b-817e-cc635383c571}') ;

你可以看到的ID是Guid,但这真的没关系。任何帮助都将不胜感激。谢谢!

共有1个答案

郑俊美
2023-03-14

您可以这样做:

select p.*
from properties p inner join
      ClassProperties cp
      on cp.propertyid = p.id
where cp.classid = any ('{88d5fe8f-e19e-40b4-bc65-83ac64f825b0, a2a63bea-aeee-4d3b-817e-cc635383c571}')
group by p.id
having count(*) = 2;

如果允许重复,count(*)应该是count(不同的分类

注意:值“2”是您正在检查的元素数。您还可以使用array_length('{88d5fe8f-e19e-40b4-bc65-83ac64f825b0, a2a63bea-aeee-4d3b-817e-cc635383c571}')

 类似资料:
  • 代码不止一次返回0和公共数字。我想让它返回一个数组与公共数字一次!那么,如何返回一个数组,数组中的数字对两个数组都是通用的。我想返回{2,7,4}-类似这样的东西。当我试图返回数组时,我总是出现越界异常。谢谢,巴里

  • 问题内容: 我有以下数据框: 我想选择列“ a”,然后仅选择一个特定元素(即,首先:1.,2.,3)。 我需要添加什么: ? 问题答案: 选择带有标签的行。 选择作为和的instersection的单元格 选择 所有 行和名为的列。请注意,尽管这可行,但这并不是引用数据框的列的惯用方式。为此,您应该使用 现在,您在列的单元格中有了列表,因此可以使用向量化的字符串方法来访问这些列表的元素,如下所示。

  • 问题内容: 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 明显的方法是。但是也许有红宝石之类的东西?或者如果不能通过扩展创建这种方法? 问题答案: Swift 4.2及更高版本 推荐的新方法是Collection协议的内置方法:。它返回一个可选参数以避免我以前假设的空情况。 如果不创建数组并且不能保证count> 0,则应执行以下操作: Swift 4.1及以下 只是为了回答您的

  • 假设我有一个数组,我想随机选择一个元素。 最简单的方法是什么? 最明显的方法是数组[随机索引]。但可能有类似ruby的数组。示例 ?或者,如果不是,那么可以使用扩展创建这样的方法吗?

  • 问题内容: 我有两个数组: 我如何获得这两个数组中的常见项目列表 我无法使用,因为我想比较2个数组。 问题答案: 您还可以结合使用和: 我们考虑以下代码片段: 我用short和long s(10到100 s)(全部随机生成)做了一些(人工)基准测试。我总是用 我得到以下结果: 如果您不只转换为a,则更可取 结果说明 使用该方法使用“蛮力”搜索,该搜索具有时间复杂度 ,而与该方法相反。然而从转换到和