簡體   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