所以我一直在搜索其他类似的问题,但我似乎无法让它进行处理。我一直收到错误ORA-01427: single-row subquery returns more than one row.
我知道我已经把我的2张桌子放到了where子句的某个地方,但我很挣扎。
表
PRICE_LIST
brand_id (null)
upc (populated)
upc_list
brand_id (populated)
upc (popualted)
用于提取null brand_ids列表的SQL
SELECT DISTINCT ul.brand_id
FROM price_list pl,
upc_list ul
WHERE ul.upc = pl.upc
AND ul.upc_type = 'p'
AND pl.brand_id IS NULL ;
我的更新查询:
UPDATE pricelist
SET pl.brand_id =
(SELECT DISTINCT ul.brand_id
FROM pricelist,
upc_list
WHERE ul.upc =pl.upc
AND ul.upc_type = 'I'
AND pl.brand_id IS NULL
)
其中(不确定要输入什么。有或没有它,它仍然给出上面的错误)
请帮助
答案 0 :(得分:0)
相关 更新查询。
请注意,我添加了ROWNUM <= 1
,以便subquery
在brand_id
个匹配项不止一个时upc
返回一个UPDATE pricelist pl
SET pl.brand_id =
(
SELECT ul.brand_id
FROM upc_list ul
WHERE ul.upc = pl.upc
AND ul.upc_type = 'I'
AND ROWNUM <= 1
)
WHERE pl.brand_id IS NULL;
。
{{1}}
答案 1 :(得分:0)
请求您显示查询结果以帮助您进一步。
以下查询将为执行更新语句的upc_type ='I'提取NULL品牌ID。
SELECT DISTINCT ul.brand_id
FROM pricelist,
upc_list
WHERE ul.upc =pl.upc
AND ul.upc_type = 'I'
AND pl.brand_id IS NULL
谢谢&amp;问候, 苛刻