Order MySQL 查询结果根据另一个 table 列以 DESC 顺序排列
Order MySQL query results in DESC order according to another table column
您好!
我的数据库中有两个 table
table(订单)
+--------+----+---------+
| name | id | user_id |
+--------+----+---------+
| order1 | 1 | 3 |
| order2 | 2 | 5 |
| order3 | 3 | 5 |
| order4 | 4 | 1 |
| order5 | 5 | 5 |
+--------+----+---------+
table (reported_orders)
+----------+---------+------------+
| order_id | user_id | time |
+----------+---------+------------+
| 2 | 5 | 1535110516 |
+----------+---------+------------+
| 3 | 5 | 1535166516 |
+----------+---------+------------+
| 5 | 5 | 1535168651 |
+----------+---------+------------+
当我执行这个查询时
SELECT name,id FROM orders
WHERE
user_id=5
AND
id IN (SELECT order_id FROM reported_orders WHERE user_id=5 ORDER BY time DESC )
LIMIT 0, 12
我得到结果
+--------+----+
| name | id |
+--------+----+
| order2 | 2 |
+--------+----+
| order3 | 3 |
+--------+----+
| order5 | 5 |
+--------+----+
但我想得到这样的结果
+--------+----+
| name | id |
+--------+----+
| order5 | 5 |
+--------+----+
| order3 | 3 |
+--------+----+
| order2 | 2 |
+--------+----+
我在查询中使用 ORDER BY time DESC
根据 reported_orders
table 中的 time
降序获取结果,但事实并非如此工作
试试这个查询
SELECT a.name,a.id FROM orders a join reported_orders b on a.id=b.id where a.user_id=5 and b.user_id=5 order by a.id desc
这个查询对我有用。
SELECT orders.name,orders.id, reported_orders.time
FROM orders
INNER JOIN reported_orders
ON (orders.id=reported_orders.order_id)
WHERE
(orders.user_id=5 AND reported_orders.user_id=5)
ORDER BY time DESC
这对我有用。
select o.name, o.id from orders o natural join reported_orders ro order by ro.time desc;
您好!
我的数据库中有两个 table
table(订单)
+--------+----+---------+
| name | id | user_id |
+--------+----+---------+
| order1 | 1 | 3 |
| order2 | 2 | 5 |
| order3 | 3 | 5 |
| order4 | 4 | 1 |
| order5 | 5 | 5 |
+--------+----+---------+
table (reported_orders)
+----------+---------+------------+
| order_id | user_id | time |
+----------+---------+------------+
| 2 | 5 | 1535110516 |
+----------+---------+------------+
| 3 | 5 | 1535166516 |
+----------+---------+------------+
| 5 | 5 | 1535168651 |
+----------+---------+------------+
当我执行这个查询时
SELECT name,id FROM orders
WHERE
user_id=5
AND
id IN (SELECT order_id FROM reported_orders WHERE user_id=5 ORDER BY time DESC )
LIMIT 0, 12
我得到结果
+--------+----+
| name | id |
+--------+----+
| order2 | 2 |
+--------+----+
| order3 | 3 |
+--------+----+
| order5 | 5 |
+--------+----+
但我想得到这样的结果
+--------+----+
| name | id |
+--------+----+
| order5 | 5 |
+--------+----+
| order3 | 3 |
+--------+----+
| order2 | 2 |
+--------+----+
我在查询中使用 ORDER BY time DESC
根据 reported_orders
table 中的 time
降序获取结果,但事实并非如此工作
试试这个查询
SELECT a.name,a.id FROM orders a join reported_orders b on a.id=b.id where a.user_id=5 and b.user_id=5 order by a.id desc
这个查询对我有用。
SELECT orders.name,orders.id, reported_orders.time
FROM orders
INNER JOIN reported_orders
ON (orders.id=reported_orders.order_id)
WHERE
(orders.user_id=5 AND reported_orders.user_id=5)
ORDER BY time DESC
这对我有用。
select o.name, o.id from orders o natural join reported_orders ro order by ro.time desc;