Select 来自 LEFT JOIN 子查询的最后一条记录
Select Last Record from LEFT JOIN Subquery
我正在使用子查询,我需要在 LEFT JOIN
中显示来自 customers_notes
table 的最新注释。
我尝试的查询返回错误。
下面我做错了什么?
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT datesubmitted FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)
我得到的错误是:#1054 - 'on clause'
中的未知列 'n.customerid'
要在 ON
子句中使用 n.customerid
,您必须先 SELECT
:
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT datesubmitted, customerid FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)
首先,您缺少 customerid
作为您在子查询中选择的字段 - 这就是您收到错误的原因。
其次,即使你添加了它,你也不会得到你想要的结果。
我假设你有一个客户,一个客户可以附有不止一张便条,你想获得客户的详细信息,以及他最近一条便条的所有详细信息。
这类问题的一般处理方法是:
在子查询中查找 max()
日期,它类似于:
select customerid, max(datesubmitted)
from customer_notes
group by customerid
然后在您的外部查询中加入这些结果
select c.*, n.*
from customers c
left join customer_notes n
on c.customer_id = n.customer_id
left join (
select customerid, max(datesubmitted)
from customer_notes
group by customerid ) nn
on n.datesubmitted = nn.datesubmitted
您缺少要加入的必填列。
在左连接查询列名 customerid 中丢失。
请参考以下查询
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT customerid,datesubmitted FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)
我正在使用子查询,我需要在 LEFT JOIN
中显示来自 customers_notes
table 的最新注释。
我尝试的查询返回错误。
下面我做错了什么?
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT datesubmitted FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)
我得到的错误是:#1054 - 'on clause'
中的未知列 'n.customerid'要在 ON
子句中使用 n.customerid
,您必须先 SELECT
:
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT datesubmitted, customerid FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)
首先,您缺少 customerid
作为您在子查询中选择的字段 - 这就是您收到错误的原因。
其次,即使你添加了它,你也不会得到你想要的结果。
我假设你有一个客户,一个客户可以附有不止一张便条,你想获得客户的详细信息,以及他最近一条便条的所有详细信息。
这类问题的一般处理方法是:
在子查询中查找 max()
日期,它类似于:
select customerid, max(datesubmitted)
from customer_notes
group by customerid
然后在您的外部查询中加入这些结果
select c.*, n.*
from customers c
left join customer_notes n
on c.customer_id = n.customer_id
left join (
select customerid, max(datesubmitted)
from customer_notes
group by customerid ) nn
on n.datesubmitted = nn.datesubmitted
您缺少要加入的必填列。 在左连接查询列名 customerid 中丢失。
请参考以下查询
SELECT c.*, n.datesubmitted
FROM `customers` c
LEFT JOIN (SELECT customerid,datesubmitted FROM `customers_notes`
ORDER BY datesubmitted DESC LIMIT 1) AS n
ON (c.customerid = n.customerid)