所以,讓我們說我有下面的表人和工資。這是一個1-N的關係,一個人可以有更多的工資。MySQL替代使用子查詢
**Person**
id
name
**Wage**
id
person_id
amount
effective_date
現在,我想查詢一個所有人及其最新工資清單。我可以通過執行以下查詢來獲得結果:
SELECT
p.*,
( SELECT w.amount
FROM wages a w
WHERE w.person_id = p.id
ORDER BY w.effective_date
LIMIT 1
) as wage_amount,
( SELECT w.effective_date
FROM wages a w
WHERE w.person_id = p.id
ORDER BY w.effective_date
LIMIT 1
) as effective_date
FROM person as p
問題是,我的查詢將有來自不同表的多個子查詢。我想盡可能提高效率。有沒有替代使用子查詢會更快,並給我相同的結果?
謝謝,完美的工作。如果存在具有相同生效日期的行,則「分組依據」解決多行問題。你們對我的版本更高效也是正確的。但是,由於我有更多的子查詢,因此將其與其他查詢進行比較並使用最適合該情況的方法非常好! – foxmulder