sql - 选择连接表使用的最大行数 最大行差异 其他
问题描述
我有一个树表 table_1、table_2 和 table_3,它的结构是
表格1
表_2
表3
在table_1中我有一个unit_id,它是通用的,我想选择所有表中的数据,例如table_2和table_3中使用的unit_id = 5,建筑物行是六,包裹行是两,我想选择六行building_id,building_area在两行 parcel_id 和 parcel_area 旁边,对于 unit_id = 6 相反,4 排地块和两排建筑物,当 unit_id = 7 时为一排建筑物,当 unit_id = 8 时为一排地块
select result example
unit_id building_id building_area parcel_id parcel_area
5 2 20 15 20
5 3 10 null null
5 4 30 null null
5 5 15 16 10
5 7 25 null null
5 8 15 null null
6 null null 21 30
6 null null 22 50
6 9 18 23 80
6 10 20 24 70
7 30 10 null null
8 null null 27 52
解决方案
您确实需要所有三个表之间的左连接,但是通过查看您的示例数据,您似乎需要表 2 和表 3 之间的关系来包含该区域。
那将是:
SELECT
t1.unit_id,
t2.building_id,
t2.area AS building_area,
t3.parcel_id,
t3.area AS parcel_area
FROM
table_1 AS t1
LEFT JOIN table_2 AS t2
ON t2.unit_id = t1.unit_id
LEFT JOIN table_3 AS t3
ON t3.unit_id = t1.unit_id
AND t3.area = t2.area
推荐阅读
- terraform - Declaring same module twice: duplicate ressources
- excel - Macro Program Very Slow
- php - Codeigniter session values lost on redirect MacOS
- c# - Delay / Freezing OF WPF ui
- html - Three full length columns in html
- reactjs - React typescript pass props 未在界面中声明?
- python - 为特定用户“多播”更新提要
- php - 由于会话超时,用户强制退出系统 - Yii
- python - 使用正确的字符编码进行抓取(python + request-HTML)
- html - 如何强制 Chrome 在网站上显示最新的图像更改