php - Mysql 左连接返回多于一行

标签 php mysql left-join

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

enter image description here

第二个的名字semp_k:

enter image description here

第三个是semp_y:

enter image description here

你看,主表是第一个,其他表都与它相关。第一个表有 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 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

关于php - Mysql 左连接返回多于一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279529/

相关文章:

php - MySQL LEFT JOIN 问题与三个 WHERE 语句

php - codeigniter 3 使用单个查询更新多个表

php - 在 jquery 中,调用用户定义的函数在 google chrome 中有效,但在 mozilla 中无效

mysql将数据从一个模式插入到另一个模式

php - sql中的总数量

sql - 需要一个专注于表组合的 SQL 语句,但条目始终具有唯一 ID

mysql - 具有不同值的多个表上的 SQL 左连接

PHP:包装每组 3 个元素

php - 如何在 Yii 中配置 php sdk 4

mysql - 在laravel中编写连接同一个表的代码