Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço referência à tabela pai em uma junção de várias tabelas?


Os resultados que você obtém são esperados. Você deve ter um id diferente para C++ e isso levaria aos resultados desejados.

Você precisa adicionar uma coluna de ID no B tabela que você usaria no C tabela (como uma chave estrangeira) para que você possa filtrar os resultados.

Corrigir esse problema de design de banco de dados ajudará você a resolver esse problema, pois seu design atual é falho.

A consulta resultante deve ser semelhante a:
SELECT *
FROM A
   LEFT OUTER JOIN B ON A.id = B.pid
   LEFT OUTER JOIN C ON A.id = B.pid AND C.newForeignKeyId=B.newId;

Além disso, eu recomendaria usar IDENTITY id colunas que são incrementadas automaticamente para que você não tenha problemas de integridade.