SQL Oracle-条件旁边列上的值的where子句

时间:2018-07-09 13:02:59

标签: sql oracle

我有一个查询,该查询根据Entity-Attribute-Value模型返回了超过一百万行。请注意,每个实体可能具有不同数量的属性,因此,我不能只寻找行ID。这是一个示例表:

+----------+-----------+------------+
| EntityID | Attr_Name | Attr_Value |
+----------+-----------+------------+
| 1        | Age       | 2          |
+----------+-----------+------------+
| 1        | Class     | Spatial    |
+----------+-----------+------------+
| 2        | Age       | 3          |
+----------+-----------+------------+
| 2        | Class     | Industrial |
+----------+-----------+------------+
| 3        | Class     | Industrial |
+----------+-----------+------------+

我需要根据所有EntityID过滤所有Class。在此示例中,假设我需要所有EntityID的{​​{1}},我希望我的查询返回行Industrial(因此与3-4-5 {{1}相关联的所有行}和EntityID

我考虑过在同一查询上使用子选择并按2进行分组,并只查找where子句(3EntityID的所有EntityIDs ),但完全无效。该查询具有大量的联接和联合,因此需要很多时间。我愿意接受所有建议,以寻求一种更有效的方法(我确定有)!

谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用SecurePage

exists