使用mariadb版本10.5.15(以及SQLAlchemy和python 3.9).
2、3、4、7和12.
如果第2、3、4、7或12行具有相同的group\U id(不包括null),但group\U leader值不同,那么对于这些行中的每一行,我想添加(同一表中的)每一行.所以我想补充一点
(相同的group\u id,不同的group\u leader)
id | count | group_id | group_leader |
---|---|---|---|
1 | 7 | 1 | null |
2 | 3 | 1 | 1 |
3 | 2 | 1 | null |
4 | 3 | 2 | 1 |
5 | 6 | 2 | null |
6 | 2 | 3 | null |
7 | 3 | 3 | null |
8 | 1 | 3 | null |
9 | 2 | 3 | null |
10 | 5 | 3 | 1 |
11 | 5 | null | null |
12 | 3 | null | null |
可以先做 Select 吗...从…起哪里然后添加这些其他行,或者我必须先做一些类似join的事情吗?
这是一个实际示例:
def query_positions(position_filter: dict):
result = db.session.query(Positions).join(
ProjectCrafts, Positions.project_craft_id == ProjectCrafts.project_craft_id).join(
Projects, Positions.project_id == Projects.project_id
)
if "firm_id" in position_filter:
result = result.filter(Positions.firm_id == position_filter["firm_id"])
if "craft" in position_filter:
result = result.filter(ProjectCrafts.craft == position_filter["craft"])
if "craft_name" in position_filter:
result = result.filter(ProjectCrafts.craft_name == position_filter["craft_name"])
positions1 = aliased(Positions)
result = result.join(positions1, Positions.is_parent == 1, Positions.family_id == positions1.family_id).join(
Positions.family_id == positions1.family_id)
positions = result.all()
return positions
问题出现在positions1 = aliased(Positions)
之后,我得到了这个错误
...
在_join\u determine\u implicit\u left\u side