我有一个包含 id、unique_id 和 order_number 的表。
我也有几个 WHERE 子句。这是我的尝试,但不起作用:
SELECT MAX(id) AS id
, order_number
FROM table
WHERE final = 0
AND username = '$username'
AND active = 1
GROUP
BY unique_id
ORDER
BY order_number
您可以将查询用作子查询:
SELECT *
FROM table
WHERE id IN (SELECT MAX(id) AS id
FROM table
WHERE final=0 AND username='$username' AND active=1
GROUP BY unique_id)
ORDER BY order_number
或者,如果
id
不唯一,请使用 JOIN
:
SELECT t1.*
FROM table AS t1
JOIN (SELECT MAX(id) AS max_id, unique_id
FROM table
WHERE final=0 AND username='$username' AND active=1
GROUP BY unique_id
) AS t2 ON t1.unique_id = t2.unique_id AND t1.id = t2.unique_id
ORDER BY order_number
试试这个:
SELECT id, redni_broj
FROM table
WHERE final=0 AND username='$username' AND active=1 AND
id IN (
SELECT MAX(id) FROM table table2
WHERE table.unique_id = table2.unique_id
)
GROUP BY unique_id
ORDER BY order_number;
你可以用这个非常简单的方法
SELECT
id, MAX(unique_id) as unique_data, order_number
FROM
table
WHERE final = 0
AND username = '$username'
AND active = 1
GROUP BY unique_data
ORDER BY MAX(unique_data);