-4

好的,这个 SQL 查询让我头疼,希望有人以前做过这样的事情。

我有两个表(截断)

tblTickets:               tblNotes:
    ticketno (int)            noteid (int)
    firmid (int)              ticketno (int)
    ticket_desc (text)        datecreated (datetime)
    ...                       ...

它们是相关的,因为一张 Ticket 可以有很多 Notes

我需要做的是创建一个按firmid(即32)搜索的查询,并使用tblNotes.datecreated(最新的优先排序)按他们最新的“注释”订购“票证”

谢谢!

注意。MySQL 服务器 (5.5.32)

编辑:对于那些将问题标记下来的人:我已经尝试过,并且我得到的最成功的 SQL 是列出通过在ticketno 上使用 JOIN 加入的所有票证和注释,我没有将此代码添加到问题中,因为我猜我是以错误的方式进行,也许我需要使用 UNION,我一直觉得使用起来很棘手。

我需要它只搜索每张票的最新注释。这就是我需要帮助的地方。

4

1 回答 1

0

您需要在 SQL 的子句中使用子查询WHERE来识别最后一个注释日期,然后加入 SQ 以限制返回的注释。

以下内容应该足以让您入门。

SELECT  ...
FROM    tblTickets T
INNER JOIN
        tblNotes N
ON      N.ticketno = T.ticketno
INNER JOIN
        (SELECT N1.ticketno
                ,MAX(N1.datecreated) AS last_note_date
        FROM    tblNotes N1
        GROUP BY
                N1.ticketno
        )SQ
ON      N.ticketno = SQ.ticketno
AND     N.datecreated = SQ.last_note_date
于 2013-08-27T14:19:01.300 回答