我正在努力编写一个查询来连接表以获得所需的结果基本上我有4个表
(一)
| 识别号|日期|
| - ------|- ------|
| 一百二十三|小行星2020|
| 一百二十三|小行星2021|
| 四百五十六|小行星2022|
| 四百五十六|小行星2021|
(二)
| 身份证|全日期|身份2|年份|
| - ------|- ------|- ------|- ------|
| 一百二十三|小行星10|某某|小行星2020|
| 一百二十三|小行星10|某某|小行星2021|
| 四百五十六|小行星10|美国广播公司|小行星2021|
| 四百五十六|小行星102022|美国广播公司|小行星2022|
3)
| id3|全日期|身份2|年份|
| - ------|- ------|- ------|- ------|
| 第12周|小行星10|某某|小行星2020|
| 第12周|小行星10|某某|小行星2021|
| a12|小行星10|美国广播公司|小行星2021|
| a12|小行星102022|美国广播公司|小行星2022|
四)
| id4|全日期|id3|年份|
| - ------|- ------|- ------|- ------|
| 小行星1990|小行星10|第12周|小行星2020|
| 小行星1990|小行星10|第12周|小行星2021|
| 小行星2060|小行星10|a12|小行星2021|
| 小行星2060|小行星102022|a12|小行星2022|
我想获得ID和ID4作为日期2021的结果,因此我想获得:
| 识别号|ID4|
| - ------|- ------|
| 一百二十三|小行星1990|
| 四百五十六|小行星2060|
我的疑问:
Select a.ID, d.ID4
from table1 as a
left join table2 as b on a.id = b.id and a.date = b.year
inner join table3 as c on b.id2 = c.id2 and b.fulldate = c.fulldate
inner join table4 as d on c.id3 = d.id3 and c.fulldate = d.fulldate
where b.year = '2021'
1条答案
按热度按时间oaxa6hgo1#
我将您的
LEFT JOIN
更改为INNER JOIN
,但这不会影响您的结果。您提供的代码与所需输出匹配,因此请仔细检查您的数据库表结构和查询,以确保它与您提供的内容匹配。SQL语言:
结果: