我有一個帶有用戶的訂單和表格。用戶表中的條目可以放在一個訂單中。使用GROUP BY或DISTINCT加左連接
隨着下面的MySQL語句,我得到重複值的訂單,如果有匹配的用戶:
SELECT o.id, u.id as 'user_id', u.name
FROM orders o
LEFT JOIN users u ON o.user_id = u.id
WHERE o.status = 'active'
如果我添加一個GROUP BY o.id
它解決了問題。
SELECT o.id, u.id as 'user_id'
FROM orders o
LEFT JOIN users u ON o.user_id = u.id
WHERE o.status = 'active'
GROUP BY o.id
如果我使用SELECT DISTINCT
它也適用。
我的問題是:
- 爲什麼它返回重複的領域?
- 使用GROUP BY或SELECT DISTINCT更正確嗎?
GROUP BY正確 –
使用group by可以得到準確的結果 –
爲什麼'select distinct'會出錯或者不準確?(回覆Rahautos和Ushma Shah) –