我想列印工資最高的員工的姓名和工資金額,到目前為止還可以,但是如果有多個記錄而不是全部列印。給出了兩個表:-
員工表:-

工資表:-

我的查詢是:-
SELECT E.NAME, S.AMOUNT
FROM `salary` S,
employee E
WHERE S.EMPLOYEE_ID = E.ID
and S.AMOUNT = (SELECT max(`AMOUNT`)
FROM `salary`)
有沒有更好的方法來找出解決方案?
uj5u.com熱心網友回復:
您想要實作的是“與關系”功能。不幸的是,mySQL 不支持這一點(在檔案中,沒有任何內容可以添加到查詢的“LIMIT”部分),因此您別無選擇,只能先查找最高薪水,然后再過濾記錄。
因此,您的解決方案適用于這種情況。
或者,如果您使用的是版本 8 或更高版本,則可以將子查詢移至 with 子句
with max_sal as (
select max(amount) ms from salary
)
SELECT E.NAME, S.AMOUNT
FROM salary S
JOIN employee E
ON S.EMPLOYEE_ID = E.ID
JOIN max_sal ms
ON S.AMOUNT = ms.ms
或者直接在join中搜索
SELECT E.NAME, S.AMOUNT
FROM salary S
JOIN employee E
ON S.EMPLOYEE_ID = E.ID
JOIN (select max(amount) ms from salary) ms
ON S.AMOUNT = ms.ms
但我敢肯定它不會讓你有更好的表現
uj5u.com熱心網友回復:
我喜歡通過加入來解決它們:
WITH M as (select max(amount) as amount from salary)
SELECT E.NAME, S.AMOUNT
FROM M JOIN SALARY USING(AMOUNT) JOIN Employee USING(Id)
但你的解決方案很好..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417216.html
標籤:
下一篇:結果列名稱中的日期
