О ответе Дж. Хардимана, как насчет:
SELECT empName, projIDs=
REPLACE(
REPLACE(
(SELECT REPLACE(projID, ' ', '-somebody-puts-microsoft-out-of-his-misery-please-') AS [data()] FROM project_members WHERE empName=a.empName FOR XML PATH('')),
' ',
' / '),
'-somebody-puts-microsoft-out-of-his-misery-please-',
' ')
FROM project_members a WHERE empName IS NOT NULL GROUP BY empName
Кстати, это использование «Фамилии» опечатки или я не понимаю понятия здесь?
В любом случае, спасибо, много парней, потому что это спасло меня довольно долго:)
Проблема в том, что вы определили каждый из зависимых столбцов как внешние ключи отдельно, когда это не совсем то, что вы намереваетесь, вы, конечно, хотите составной внешний ключ. Sqlalchemy отвечает на это, говоря (не очень понятным образом), что он не может угадать, какой внешний ключ использовать (firstName
или lastName
).
Решение, объявляющее составной внешний ключ, является довольно сложным в декларативном, но все же довольно очевидным:
class Book(Base):
__tablename__ = 'books'
title = Column(String(20), primary_key=True)
author_firstName = Column(String(20))
author_lastName = Column(String(20))
__table_args__ = (ForeignKeyConstraint([author_firstName, author_lastName],
[Author.firstName, Author.lastName]),
{})
Важно то, что определения ForeignKey
удалены из отдельных столбцов, а ForeignKeyConstraint
добавляется к переменной класса __table_args__
. При этом relationship
, определенном на Author.books
, работает правильно.