I'm writing this query:
SELECT DISTINCT(o.id), o.status, p.excelID
FROM orders as o
LEFT JOIN (SELECT DISTINCT(orderId) id, excelID FROM parcels) as p on o.id = p.id
WHERE o.id is not null and p.id is not null
This is example of query records:
| id | status | excelID |
|---|---|---|
| 145 | good | 4444 |
| 145 | good | 3215 |
| 94 | bad | 9875 |
| 81 | bad | 5784 |
| 81 | bad | 5631 |
Like you can see i have duplicates in id column even when im using DISTINCT function and how can i write question to query to get records like:
| id | status | excelID |
|---|---|---|
| 145 | good | 4444 |
| 94 | bad | 9875 |
| 81 | bad | 5784 |
CodePudding user response:
Incase you are interested in maximum value of excelID in case multiple excelID is available. Try this:
SELECT DISTINCT(o.id), o.status, max(p.excelID) as excelID
FROM orders as o
LEFT JOIN (SELECT DISTINCT(orderId) id, excelID FROM parcels) as p on o.id = p.id
WHERE o.id is not null and p.id is not null
group by o.id, o.status
