[英]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.