繁体   English   中英

MySQL左联接返回多行

[英]Mysql left join returns more than one row

我有3个表,某些字段的名称相同。 这是第一个名为semp的表:

在此处输入图片说明

第二个名字semp_k

在此处输入图片说明

第三个是semp_y

在此处输入图片说明

您会看到,主表是第一个,其他与之相关。 第一张桌子有3行。 因此,当我获取它时,它必须返回3行。 但是当我获取第一个表时,它乘以第二和第三表的总和返回的行。 这是我的代码:

SELECT s.*, k.*, y.* FROM semp AS s LEFT JOIN semp_k AS k ON s.no = k.semp_no LEFT JOIN semp_y AS y ON s.no = y.semp_no WHERE s.durum = 1 ORDER BY s.bas_t DESC

使用MySQL group by

group by s.no

或尝试这个:-

SELECT
s.*, k.*, y.*
FROM
semp AS s
LEFT JOIN semp_k AS k ON s. NO = k.semp_no
LEFT JOIN semp_y AS y ON s. NO = y.semp_no
WHERE
s.durum = 1
GROUP BY s.no
ORDER BY
s.bas_t DESC

您需要使用分组依据。 您的查询应该像这样;

SELECT
    s.*, k.*, y.*
FROM
    semp AS s
LEFT JOIN semp_k AS k ON s. NO = k.semp_no
LEFT JOIN semp_y AS y ON s. NO = y.semp_no
WHERE
    s.durum = 1
GROUP BY s.no
ORDER BY
    s.bas_t DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM