我想知道是否我可以留下一个子查询连接到另一个查询时,当两者都涉及到相同的表。左加入一个子查询到表1到另一个查询到表1
该查询会给我第一次预约客户已完成(QUERY1):
SELECT ID, AN_ID, BUS_ID, DONE_DATE, BV, SET_DATE, REG_DATE
FROM `TABLE_1`
RIGHT JOIN `TABLE_2`on (TABLE_1.AN_ID = TABLE2.BEN_ID)
WHERE ((((TABLE1.AN_ID > 0)) AND (TABLE1.STATUS = 3)) AND (TABLE1.DONE_DATE > 0)) AND TABLE1.BEN_ID <> 41))
GROUP BY USER
ORDER BY TABLE1.DONE_DATE ASC
这个查询应该给我第二次预订的客户已经做:
SELECT ID, AN_ID, BUS_ID, DONE_DATE, BV, SET_DATE, REG_DATE
FROM `TABLE_1`
RIGHT JOIN `TABLE_2`on (TABLE_1.AN_ID = TABLE2.BEN_ID)
**LEFT JOIN QUERY1**
WHERE ((((TABLE1.AN_ID > 0)) AND (TABLE1.STATUS = 3)) AND (TABLE1.DONE_DATE > 0)) AND TABLE1.BEN_ID <> 41))
GROUP BY USER
ORDER BY TABLE1.DONE_DATE ASC
我怎么能做这个?在我的理解中,总体查询应该给我第二个最低的,因此每个客户的第二个预订(即:第一次重新预订)。为什么?:通过“左连接”加入QUERY1,它应该导致我对所有记录进行全面查询,但是QUERY1中的查询或?
我试过'WHERE NOT EXISTS'(显示我没有数据)和'WHERE NOT IN'(错误约1列出现)。
任何想法?期待您的专业知识!
P.S .:我认为可能像这样VIRTUAL TABLE可以帮助,但说实话我的SQL技能不符合在那里描述的任何东西。 :(
“此查询会给我第一个客户完成的预订(QUERY1):”呃,不会的 - 或者只是偶然/巧合! :-( – Strawberry
请参阅:[为什么我应该为我认为是非常简单的SQL查询提供一个MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-一个mcve为什么似乎对我来说是一个非常简单的sql查询) – Strawberry
好吧。如上所述,我不是一个SQL专业人员。如果您需要一些更多的信息,以便您可以帮助我 - 请详细说明这些问题,并且我很乐意提供这些信息。从我所了解的SQL来看,这是目前所有必需的信息。在我对QUERY1的理解中,由于我通过DONE_DATE ASC和USERS命令进行了排序,我是每个用户的最低DONE_DATE结果? –