sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hago referencia a la tabla principal en una combinación de varias tablas?

Los resultados que obtienes son los esperados. Debería tener una identificación diferente para C++ y eso conduciría a los resultados que desea.

Debe agregar una columna de ID en B tabla que usaría en el C table (como clave externa) para que pueda filtrar los resultados.

Arreglar este problema de diseño de la base de datos lo ayudará a resolver este problema ya que su diseño actual es defectuoso.

La consulta resultante debería verse así:

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;

Además, recomendaría usar IDENTITY columnas de identificación que se incrementan automáticamente para que no tenga problemas de integridad.