我承认在这里我是一个绝对的 SQL 菜鸟(我可以进行内部连接,但这与我对 SQL 的了解一样“复杂”),但我希望获得一些关于如何最好地实现某事的帮助/见解/想法。我有一张公司表,以及这些公司的个人子表。公司可以有一个邮寄地址,但个人可能有一个不同的邮寄地址来覆盖正常的公司地址。我的环境中有 SQL Server 2008。我的想法是让 SQL 查询以下列方式循环两次
SELECT tblIndividuals.FirstName,
tblIndividuals.LastName,
tblIndividuals.CompanyName,
tblIndividuals.MailingAddress1,
tblIndividuals.MailingAddress2,
tblIndividuals.MailingAddress3,
tblIndividuals.MailingAddress4,
tblIndividuals.City,
tblIndividuals.[State],
tblIndividuals.Zip
FROM tblIndividuals
INNER JOIN tblCompanies ON tblIndividuals.CompanyName = tblCompanies.CompanyName
WHERE tblIndividuals.ChristmasList=1
AND tblIndividuals.MailingAddress1 IS NOT NULL
SELECT tblIndividuals.FirstName,
tblIndividuals.LastName,
tblIndividuals.CompanyName,
tblCompanies.MailingAddress1,
tblCompanies.MailingAddress2,
tblCompanies.MailingAddress3,
tblCompanies.MailingAddress4,
tblCompanies.City,
tblCompanies.[State],
tblCompanies.Zip
FROM tblIndividuals
INNER JOIN tblCompanies ON tblIndividuals.CompanyName = tblCompanies.CompanyName WHERE tblIndividuals.ChristmasList=1
AND tblIndividuals.MailingAddress1 IS NULL
ORDER BY tblIndividuals.CompanyName
想法是这样,代码将循环一次,抓取圣诞节列表中所有具有覆盖公司地址的邮寄地址的个人,然后循环抓取圣诞节列表中使用默认公司的所有个人地址,最后按公司名称对所有结果进行排序。那些比我更精通 SQL 的人知道,这并不像我希望的那样工作,而是只运行两个查询。是否有更精通 SQL 的人愿意在这里以更好的方式提供一些见解以实现我的最终目标?任何帮助将不胜感激。提前感谢您的时间。
编辑:我知道第一个查询并不真正需要内部联接,我只是从第二个查询复制/粘贴并没有更改它。>.<