sql - LEFT JOIN 但从右侧只取一行
问题描述
语境:
我有两张桌子:ks__dokument
和ks_pz
。这是一对多的关系,其中来自 ks__dokument 的记录可能有多个从 ks_pz 分配的记录。
目标:
我想显示每一行,ks__dokument
并且每一行ks__dokument
必须只显示一次。
我尝试了什么:
这是我尝试过的查询:
SELECT DISTINCT ks_id, * FROM ks__dokument AS dok1
LEFT JOIN ks_pz ON ks_id = kp_ksid
但它仍然显示重复。
编辑
- ORDER BY and WHERE 是不必要的。
- 我不需要 DISTINCT,这正是我尝试过的。
表结构
ks__dokument 结构:
| ks_id | X | X | X | X | X | X |
ks_pz:
| kp_id | kp_ksid | X | X | X |
'X' 是不重要的列。kp_ksid 是 ks__dokument 的外键。
解决方案
您可以尝试以下方法 - 将您的WHERE
条件子句移至ON
子句
SELECT DISTINCT ks_id, * FROM ks__dokument AS dok1
LEFT JOIN ks_pz ON ks_id = kp_ksid
and ks_usuniety = 0 AND ks_data_otrzymania >= '2020-08-31'
ORDER BY ks_rok, ks_nr ASC
推荐阅读
- sql - 表单的控件不会在 DataSet 更改时更新
- c - 如何在两条直线之间生成随机坐标?
- c# - 使用实体框架核心时如何将“Uri”转换为字符串
- android - 如何使用 Azure DevOps 版本控制系统(旧 TFS),使用 Android Studio?
- mysql - 如何按时间顺序从两个或多个表中进行选择?
- angular - Angular Show loader 从 httpclient.get 获取数据
- selenium - 是否可以等待一个表直到它的所有行完全加载
- javascript - 如何在three.js中的control.reset()之后修复pan
- jquery - jQuery:选择
- python - Python + Gtk + WebKit:页面更改后滚动条高度未重置