我有以下示例查询(MySQL):
SELECT * FROM `action`
WHERE `customer_id` IN
(SELECT `id` FROM `customer` WHERE `status`=1)
ORDER BY
action.date ASC
LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)
我需要能够通过customer.status字段进行排序.我是通过加入来实现这一目标的吗?
status是customer桌子上的一个字段.
编辑查询:
SELECT * FROM `action`
ORDER BY
action.date ASC
LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)
重要!
我正在通过PHP解析返回数据.运行修改后的查询后:
SELECT * FROM `action` a INNER JOIN `customer` c ON a.customer_id = c.id ORDER BY a.form_id ASC LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)
我的PHP代码中断...
这篇文章帮助了我.
我修改后的查询如下所示:
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
Run Code Online (Sandbox Code Playgroud)
感谢大家!
UPDATE
因为我有一些没有动作记录的客户记录,所以INNER JOIN没有返回所有相关记录.我现在使用JOIN,所有结果都按预期返回.
SELECT *
FROM `action` a
INNER JOIN `customer` c on a.`customer_id` = c.`id`
WHERE c.`status` in (1, 4, 7, 8)
ORDER BY a.date, c.status
LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3733 次 |
| 最近记录: |