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')
我有两个 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')