MySQL:错误代码:1242 子查询返回超过 1 行

标签 mysql subquery mysql-error-1242

error image here

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) 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

我有语法错误吗?我不明白问题出在哪里,你能帮我吗?

最佳答案

如果子选择返回多于一行,但您需要例如第一个,则可以使用 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

关于MySQL:错误代码:1242 子查询返回超过 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920179/

相关文章:

mysql - 如何在查询中使用join从多个子查询中获取数据

java - 如何对数据库中的表进行排序

c++ - MySQL与Qt远程连接

php - 将数据库中的数据显示为选择中的选项

mysql - PHP和Mysql,避免多次循环查询

mysql - 帮助子查询!返回多于 1 行

mysql - SQL子查询逻辑困惑

php - 如何在单个查询中使用 While 循环编写多个查询?

mysql - #1242 : Subquery Returns more than one row