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

Сравняване на комбинация родител-дете от 2 различни таблици в SQL Server

Отговорете според коментарите по въпроса. Изпробвах го на база данни SQLite и тъй като синтаксисът може да е неправилен в сравнение с SQLServer, мога само да ви дам указания. Нямам връзка към база данни.

Намиране на основите:

  1. Намерете двойката mat_no, дете в mat_rel, където родителят Е NULL
  2. Намерете всички редове в mat_rel, които съответстват на mat_no и където родителят съответства на дъщерния от 1. Добавете SQL от 1. в JOIN като (SELECT ..).

Намиране на несъответствие (сравняване на дете=дете и mat_no=mat_no):

  1. Намерете всички редове от 2, където няма съответстващ ред в mat_item. Използвайте LEFT JOIN или NOT EXISTS
  2. Намерете всички редове в mat_item, където няма съответстващ ред в mat_rel от 2. Използвайте RIGHT JOIN или NOT EXISTS.

Намиране на 3 и 4:

  1. Използвайте и двата SQL с UNION ALL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ключова дума не се поддържа:метаданни

  2. mssql (tsql) процедура замяна на ред

  3. Преименувайте SA акаунта в SQL Server (пример за T-SQL)

  4. Заявката работи бавно с израз за дата, но бързо с низов литерал

  5. T SQL формат на заявка за изграждане на динамична таблица