我有两个表来描述项目和产品:
类别:
| categoryid | categoryname |
| -------------| -----------------|
| 1 | "a" |
| 2 | "b" |
项目:
| itemid | itemname |
| -------- | --------------|
| 1 | "c" |
| 2 | "d" |
| 3 | "e" |
以及将它们映射在一起的第三个表:
分类项目:
| itemid | categoryid |
| -------- | -------------- |
| 1 | 1 |
| 2 | 2 |
| 3 | 2 |
创建一个返回数组'[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')