saklı yordam hatası: alt sorgusu birden 1 satır döndürür

0 Cevap php

Bir saklı yordam oluşturmak için çalışıyorum ama bana bir hata veriyorum: Altsorgunun altında sorgu için 1'den fazla satır döndürür. Bu imleci kullanarak yapılabilir ama birden fazla tablo için saklı yordam eklemek gerekir bu tip birden fazla sorgu olmadığından, doğrudan imleç kullanmadan saklanan prosedürleri bu sorguyu çalıştırmak için başka yollar vardır.

Sorgu: -

UPDATE ipcc_patent_ipc_class
SET assignee_type = (
SELECT IF(ipcc_patent_master.assignee_type='$ipcc_config_param[0]',$ipcc_config_value[0],IF(ipcc_patent_master.assignee_type='$ipcc_config_param[1]',$ipcc_config_value[1],null))
FROM ipcc_patent_master
WHERE ipcc_patent_ipc_class.patent_id = patent_uid);

Ama bu sorgu birden fazla alan için çalışıyor: -

UPDATE ipcc_patent_ipc_class
SET geographies_id=(
  SELECT ipcc_geographies.geographies_uid
  FROM ipcc_patent_master,ipcc_geographies
  WHERE ipcc_patent_master.geographies = ipcc_geographies.geographies
  AND ipcc_patent_ipc_class.patent_id = ipcc_patent_master.patent_uid
),
jurisdictions_id =(
  SELECT ipcc_jurisdictions.jurisdisctions_uid
  FROM ipcc_patent_master,ipcc_jurisdictions
  WHERE ipcc_patent_master.jurisdictions = ipcc_jurisdictions.jurisdictions
  AND ipcc_patent_ipc_class.patent_id = ipcc_patent_master.patent_uid
),
country_code_id =(
  SELECT ipcc_country_code.country_code_uid
  FROM ipcc_patent_master,ipcc_country_code
  WHERE ipcc_patent_master.country_code= ipcc_country_code.country_code
  AND ipcc_patent_ipc_class.patent_id = ipcc_patent_master.patent_uid
); 

0 Cevap