카테고리 없음
[mysql] MySQL : 오류 코드 : 1242 하위 쿼리가 2 개 이상의 행을 반환합니다.
필살기쓰세요
2021. 2. 3. 14:24
하위 선택이 행보다 더 많이 반환하지만 예를 들어 첫 번째 행이 필요하면 limit 1을 사용할 수 있습니다.
SELECT daire.code, daire.durumu, daire.blblkodu, CONCAT(cari.adi , cari.soyadi) AS sahibi,
CASE daire.blkrcrkodu WHEN '0'
THEN CONCAT(cari.adi,cari.soyadi)
ELSE (SELECT CONCAT(adi,soyadi)
FROM cari
WHERE blkodu = daire.blkrcrkodu
AND firma_code = 40
AND site_code = 84
LIMIT 1) END AS oturan,
daire.kat, daire.kapi_no, daire.giris_no, daire.alan_m2, daire.__formatted_date
FROM daire
INNER JOIN cari ON
(daire.blshcrkodu = cari.blkodu AND cari.site_code = 84 AND daire.site_code = 84)
WHERE daire.site_code = 84
AND daire.firma_code = 40
ORDER BY daire.blkodu DESC
-------------------기본 쿼리의 선택 목록에 하위 쿼리가 있습니다.
...
(SELECT CONCAT(adi,soyadi)
FROM cari
WHERE blkodu = daire.blkrcrkodu
AND firma_code = 40
AND site_code = 84) END AS outran
...
이러한 하위 쿼리는 1 개의 행과 1 개의 열 (단일 값)을 반환해야합니다. 하위 쿼리는 1 개의 열을 반환하지만 2 개 이상의 행을 반환하므로 오류가 발생합니다.
쿼리 자체에 대해 아무것도 공유하지 않았고 어쨌든 오류가 무엇인지 물었 기 때문에 요구 사항에 맞게 쿼리를 수정하는 방법에 대한 정확한 솔루션을 제공 할 수 없습니다. 일반적으로 신청할 수 있습니다.
limit 1
행 수를 1로 제한하는 절min()
결과 집합을 단일 행으로 축소하는 것과 같은 집계 함수를 사용합니다.- 단일 레코드 만 반환하도록 where 기준을 수정합니다.
출처
https://stackoverflow.com/questions/39920179