我使用python生成了一条SQL语句。当我打印出来时,它看起来像这样:
SELECT * FROM item
LEFT JOIN person
ON item.owner_id = person.id
LEFT JOIN person
ON item.assignee_id = person.id
当我尝试运行我的代码时,我收到以下错误(来自Flask/Jinja(:
sqlite3.OperationalError: ambiguous column name: main.person.id
项目可以有所有者和受让人。他们可以是不同的人。所有者和受让人的数据均来自表中的人员。
最后,我想要一份声明,给我一个项目,包括它的所有者和受让人
仅供参考:最初的陈述有点长,我说出了一些我认为对这个问题没有必要的东西。
当您进行自联接时,您必须对表进行别名:
SELECT * FROM item
LEFT JOIN person AS p1
ON item.owner_id = p1.id
LEFT JOIN person AS p2
ON item.assignee_id = p2.id
检查ON子句。我以为这就是你的意思,但我可能错了。