0
相当简单,我有3张表需要加入。 DB(MSSQL)应在前两个(p和u)表中有1个记录,然后在第3个表(a)中有多个记录。左连接3表返回右表中每场比赛的结果
我只希望它从第一个表中返回一个匹配(不是左外部联接?),而不管第二个表中是否存在匹配,但是如果存在匹配的显示,并且如果存在(大多数情况下,将有多个比赛),但只使用当列appt_date是有序的DESC的第一场比赛(给我最近的预约日期)比赛在第三表
SELECT p.person_id, p.ln, p.fn, p.sex,
u.ud1_id, u.ud2_id, a.date, a.time
FROM person p LEFT OUTER JOIN person_defined u
ON p.person_id = u.person_id LEFT OUTER JOIN appointments a
ON p.person_id = a.person_id
where p.home_phone = '123456789'
ORDER BY a.appt_date DESC
目前还不清楚你的查询有什么问题。是否因为预约关系的行重复?你遇到了什么错误的行为? – gustavodidomenico 2014-10-16 22:24:40
你叫p和u第一个表,哪一个是“第一个”? p和u总会有一排吗? – DavidG 2014-10-16 22:25:30
在你想要返回最近日期的任何列的select语句中使用'max(COLUMN)'。 – NonSecwitter 2014-10-16 22:28:55