SQL - 我应该使用连接吗?

AVP*_*mer 1 mysql sql join

我有以下示例查询(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字段进行排序.我是通过加入来实现这一目标的吗?

statuscustomer桌子上的一个字段.


编辑查询:

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,所有结果都按预期返回.

Red*_*ter 5

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)

  • 我不是mySql专家,但我很好奇是否在ORDER BY子句中有`c.status`的原因. (2认同)