我有2张桌子

'prodAtt'
attID, prodID
218,   11
219,   11
220,   10
221,   10
222,   15
223,   15

'attrdef'
attID, attName
218,    a
219,    b
220,    c
221,    e
222,    f
223,    g


我想查看所有具有prodID或10或11的attrdef行

我努力了

select * from ATTRdEF inner JOIN PRODATT on PRODATT.PRODUCT_ID = 11 or PRODATT.PRODUCT_ID = 10


但这将返回整个attrdef表,我正在使用squirrel及其DB2数据库。

有人可以告诉我我做错了吗?

最佳答案

您没有指定如何将表prodAtt与表attrdef联接,因此,尝试通过联接另一个表来实现的任何过滤均无效。您必须告诉数据库您希望将两个表连接到哪些列,然后可以添加WHERE子句来过滤结果。

查看表,您应该将它们加入列attID中:

 SELECT a.attID
      , a.attName
 FROM ATTRDEF a
      INNER JOIN PRODATT p ON a.ATTID = p.ATTID
 WHERE p.prodID IN (10, 11);

08-24 17:46