我试图在一个查询中从三个表中获取信息.我不知道是否可以这样做...到目前为止我尝试过的东西没有用,但我对SQL也不是很了解.
我有三张桌子registration,其中包含注册信息,experience用于保存客户的活动选择(如果他们选择了晚餐,午餐,单日等),并且additionalInfo还包含其他活动信息,例如他们对特定研讨会的选择在活动期间.registration并且experience将始终具有值,但additionalInfo不保证具有值.我想要的是,在一个查询中,获取注册和事件选择,以及是否有东西additionalInfo要检索或返回NULL.
我正在尝试这个查询:
SELECT registration.firstName, registration.lastName, registration.phone, experience.options, additionalInfo.workshops
FROM registration, experience, additionalInfo
WHERE registration.identifier = experience.identifier
AND experience.paid = 'Yes'
AND registration.eventName = 'march2013'
AND additionalInfo.identifier = registration.identifier
ORDER BY registration.lastName ASC
Run Code Online (Sandbox Code Playgroud)
此查询仅返回additionalInfo.identifier存在的值,但正如我所说,这不保证存在.
使用 LEFT JOIN
SELECT registration.firstName,
registration.lastName,
registration.phone,
experience.options,
additionalInfo.workshops
FROM registration
INNER JOIN experience
ON registration.identifier = experience.identifier
LEFT JOIN additionalInfo
ON additionalInfo.identifier = registration.identifier
WHERE experience.paid = 'Yes' AND
registration.eventName = 'march2013'
ORDER BY registration.lastName ASC
Run Code Online (Sandbox Code Playgroud)
要进一步了解联接,请访问以下链接: