列模糊定义错误

时间:2014-02-25 04:37:25

标签: sql oracle

SELECT itemname,
       price,
       itemfamily,
       f.familyname
FROM item_master i
JOIN item_family f ON f.familyid=i.itemfamily
JOIN
  (SELECT min(price) AS min1,
          itemfamily
   FROM item_master
   GROUP BY itemfamily) t ON t.itemfamily=i.itemfamily
WHERE price= min1;

我得到了:

  

栏目无法定义的错误

执行此查询时

2 个答案:

答案 0 :(得分:4)

itemfamilyitem_masteritem_family中的有效列。您必须在select语句中通过别名指定您引用的那个。

或者:

SELECT
    itemname,
    price,
    i.itemfamily,
    f.familyname

或:

SELECT
    itemname,
    price,
    f.itemfamily,
    f.familyname

答案 1 :(得分:4)

这是因为两个表(item_master & item_family)都包含itemfamily列。因此,在select查询中仅指定itemfamily将不起作用。您明确需要指定从哪个表中{{1列。 因此,请在select子句中使用itemfamilyi.itemfamily

t.itemfamily

SELECT itemname,
       price,
       i.itemfamily,
       f.familyname