Sql 一个表中的两列是否可以连接到同一个第二个表?
如果答案很简单,我表示歉意,但我对此有点陌生 基本上我有两张桌子 1) 此表使用以下列详细说明了一个人的简历详细信息 名|姓|月|日|月|月|年 2) 此表是一个名为“codebook”的参考表,用于查找 并具有以下列 键值 在第一个表中,“DOB-Day”和“DOB-Month”都引用“codebook表”(这是因为这两列实际上是应用程序中的组合框,所以存储在这里的值引用codebook表) 我的问题是当我试图查询数据库时——本质上,我希望显示给用户的结果显示“DOB-Day”和“DOB-Month”列的实际值,而不是实际存储在第一个表中的ID 我将向这两个表中添加一些简单的数据以用于上下文 表1Sql 一个表中的两列是否可以连接到同一个第二个表?,sql,join,Sql,Join,如果答案很简单,我表示歉意,但我对此有点陌生 基本上我有两张桌子 1) 此表使用以下列详细说明了一个人的简历详细信息 名|姓|月|日|月|月|年 2) 此表是一个名为“codebook”的参考表,用于查找 并具有以下列 键值 在第一个表中,“DOB-Day”和“DOB-Month”都引用“codebook表”(这是因为这两列实际上是应用程序中的组合框,所以存储在这里的值引用codebook表) 我的问题是当我试图查询数据库时——本质上,我希望显示给用户的结果显示“DOB-Day”和“DOB-Mo
Forename Surname DOB - Day DOB - Month DOB - Year
Sam Smith DOB_DAY_1 DOB_MONTH_6 1987
Tom Nickles DOB_DAY_13 DOB_MONTH_4 1974
Abigail Peters DOB_DAY_17 DOB_MONTH_10 2000
Marcus Tompson DOB_DAY_5 DOB_MONTH_11 2002
Rick Ford 2000
表2
Key Value
DOB_DAY_1 1
DOB_DAY_2 2
DOB_DAY_3 3
DOB_MONTH_1 January
DOB_MONTH_2 February
DOB_MONTH_3 March
我曾尝试在表上使用相等联接,以便“DOB-Day”=“Key”和“DOB-Month”=“Key”,但我遇到了一个问题,即如果某个人不知道某个DOB,则不会在结果中显示,因为相等联接会贴现空值
我在外部联接中需要什么,但是Microsoft query editor说我只能有一个外部联接,所以我只能引用其中一列
我显然不理解一些关键的东西,因为同一个表中的两列必须能够引用同一个第二个表。子查询可以解决这个问题吗
任何帮助都将不胜感激,如果你能帮我把它说出来那也太好了哈哈 您需要的不是等连接,而是左连接。左联接B。意味着它将显示表A中的所有内容,即使在表B中未找到查找值
SELECT T.Forename,T.Surname,Day.Value as DOBDay,Month.Values as DOBMonth,T.[DOB - Year]
FROM Test as T
LEFT JOIN CodeBook as Day ON Day.Key=T.[DOB - Day]
LEFT JOIN CodeBook as Month ON Month.Key=T.[DOB - Month]
分享你的尝试?根据您在问题文本中提到的内容,我假设您使用的是MS Sql Server。请同时指定预期结果。