【发布时间】:2012-02-10 19:09:48
【问题描述】:
我有以下示例查询(MySQL):
SELECT * FROM `action`
WHERE `customer_id` IN
(SELECT `id` FROM `customer` WHERE `status`=1)
ORDER BY
action.date ASC
LIMIT 0, 10
我需要能够按 customer.status 字段订购。我是否通过加入来完成此操作?
status 是customer 表中的一个字段。
已编辑查询:
SELECT * FROM `action`
ORDER BY
action.date ASC
LIMIT 0, 10
重要!
我正在通过 PHP 解析返回数据。运行修改后的查询后:
SELECT * FROM `action` a INNER JOIN `customer` c ON a.customer_id = c.id ORDER BY a.form_id ASC LIMIT 0, 10
我的 PHP 代码中断了...
This post 帮了我一把。
我修改后的查询如下所示:
SELECT
*, a.id AS lead_id, c.id AS customer_id
FROM
`action` a
INNER JOIN
`customer` c ON a.customer_id = c.id
ORDER BY c.status DESC
谢谢大家!
更新
因为我有一些没有操作记录的客户记录,所以 INNER JOIN 没有返回所有相关记录。我现在使用 JOIN,所有结果都按预期返回。
【问题讨论】:
-
这是一个状态过滤器,所以我需要编辑示例