Я хочу объединить две разные таблицы и сделать их уникальными для конкретного столбца. Я использую базу данных postgresql.
q1 = self.dbsession.query(
A.id.label('a_id'),
null().label('b_id'),
A.name.label('name'),
A.email.label('email'),
A.photo.label('photo'))
q2 = self.dbsession.query(
B.matched_a_id.label('a_id'),
B.id.label('b_id'),
B.name.label('name'),
B.email.label('email'),
A.photo.label('photo'))
q1.union(q2).all()
Это вывод, который я получаю:
[(306, 80, 'StackOverFlow', 'stack@over.flow', 'www.picture.url'), (306, None, 'StackOverFlow', 'stack@over.flow', 'www.picture.url'), (305, None, 'Google', 'google@gmail.com', ''), (None, 82, 'Explorer', 'explorer@microsoft.com', '')
Как видите, первый и второй элемент практически дублированы. Я хотел бы различать все записи после объединения с первым столбцом, который помечен как a_id
. Возможно ли это?
Ожидаемый вывод будет для меня тем же списком, но без элемента, у которого первый столбец идентичен первому, а второй - None, например:
[(306, 80, 'StackOverFlow', 'stack@over.flow', 'www.picture.url'), (305, None, 'Google', 'google@gmail.com', ''), (None, 82, 'Explorer', 'explorer@microsoft.com', '')