mysql - SQL identifie différentes données dans deux tables
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-18 10:49:15
0
2
741

Il existe deux tables avec environ 10 000 lignes. Nous devons interroger les lignes avec des différences. Le code actuel est le suivant :

SELECT number, version
FROM
 (
   SELECT a.number, b.version
   FROM a
   UNION ALL
   SELECT b.number, b.version
   FROM b
)  tb
GROUP BY number, version
HAVING COUNT(*) = 1
ORDER BY number

Mais voici le problème. Le code ci-dessus ne peut interroger que différentes lignes, mais il ne peut pas afficher celles du tableau a qui ne sont pas dans le tableau b, ni celles du tableau b qui ne sont pas dans le tableau a. afficher les lignes de la troisième colonne ?

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(2)
巴扎黑

Selon l'affiche originale, le numéro et la version dans une seule table ne seront pas répétés. Créez un index composite pour le numéro et la version des deux tables, puis exécutez le sql

suivant.
SELECT a.number, a.version,'from_a'
FROM a
where not exists (
SELECT 1 FROM b where a.number=b.number and a.version=b.version)
union all
SELECT b.number, b.version,'from_b'
FROM b
where not exists (
SELECT 1 FROM a where a.number=b.number and a.version=b.version)
ORDER BY number;
或者
SELECT a.number, a.version,'from_a'
from a left join b on a.number=b.number and a.version=b.version
where b.id is null
union all
SELECT b.number, b.version,'from_b'
from a right join b on a.number=b.number and a.version=b.version
where a.id is null
ORDER BY number;
下面这个效率可能会差点
Ty80

Essayez-lefull join ... where a is null or b is null. Par exemple, en utilisant Postgres :

select
  case when a.n is null then b.n else a.n end as n,
  case when a.n is null then b.v else a.v end as v,
  case when a.n is null then 'b' else 'a' end as src
from
  (values(1, 2), (2, 3), (3, 4)) as a(n, v)
  full join
  (values(6, 7), (2, 3), (3, 9)) as b(n, v)
  using (n, v)
where a.n is null or b.n is null

Résultat :

 n | v | src
---+---+-----
 1 | 2 | a
 3 | 4 | a
 3 | 9 | b
 6 | 7 | b
(4 行记录)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal