PGSQL - 使用外键翻译查询结果

PGSQL - Translate query results with foreign keys

我有两个 table 描述项目和产品:

类别:

| categoryid   | categoryname     |
| -------------| -----------------|
| 1            | "a"              |
| 2            | "b"              |

项目:

| itemid   | itemname      |
| -------- | --------------|
| 1        | "c"           |
| 2        | "d"           |
| 3        | "e"           |

和第三个 table 将它们映射到一起:

ItemToCategory:

| itemid   | categoryid     |
| -------- | -------------- |
| 1        | 1              |
| 2        | 2              |
| 3        | 2              |

创建查询的最佳方法是 returns 数组“[c,d]”中所有项目名称的项目名称和类别名称:

| itemname | categoryname  |
| -------- | --------------|
| "c"      | "a"           |
| "d"      | "b"           |

您可以在 WHERE 子句中使用 ANY 运算符来实现此目的:

select i.itemname, c.categoryname 
from item i
  join itemtocategory ic on ic.itemid = i.itemid
  join category c on c.categoryid = ic.categoryid
where i.itemname = any(array['c', 'd'])  

条件= any(array['c', 'd'])等同于IN ('c', 'd')