Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да направя справка с родителска таблица в присъединяване с множество таблици?

Резултатите, които получавате, са очаквани. Трябва да имате различен идентификатор за C++ и това ще доведе до желаните от вас резултати.

Трябва да добавите колона и ID в B таблица, която бихте използвали в C таблица (като външен ключ), за да можете да филтрирате резултатите.

Коригирането на този проблем с дизайна на базата данни ще ви помогне да разрешите този проблем, тъй като текущият ви дизайн е дефектен.

Получената заявка трябва да изглежда така:

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;

Също така бих препоръчал да използвате IDENTITY id колони, които се увеличават автоматично, така че да не се сблъскате с проблеми с целостта.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL кумулативна сума по дата

  2. Как да ГРУПИРАТЕ ПО низова част в MySQL

  3. MySQL автоматично вмъкване на ред в таблица2 при вмъкване в таблица1

  4. Ограничение за предотвратяване на нарушаване на FK ограничението в трета таблица

  5. Многоезични индекси с Laravel Scout и Algolia