Maison base de données tutoriel mysql Comment interroger différentes valeurs de données du même champ dans deux tables

Comment interroger différentes valeurs de données du même champ dans deux tables

Jun 23, 2017 pm 01:34 PM
join left mysql 查询 比较

Comment interroger différentes valeurs de données du même champ dans deux tables

Par exemple :

Le champ a dans la table A contient 40 000 éléments de données
Le champ a dans la table B a 60 000 40 000 éléments de données sont identiques au tableau A
Comment pouvons-nous interroger les 20 000 éléments de données différents ?

--Créer des tableaux table1, table2 :

create   table   table1(id   int,name   varchar(10));   
create   table   table2(id   int,score   int);   
insert   into   table1   select   '1','lee';
insert   into   table1   select   '2','zhang';
insert   into   table1   select   '3','steve';
insert   into   table1   select   '4','wang';   
insert   into   table2   select   '1','90';   
insert   into   table2   select   '2','100';   
insert   into   table2   select   '3','70';
Copier après la connexion

comme indiqué dans le tableau

-------- -- ---------------------------------------
tableau1"
- --- ---------------------------------------------
nom d'identification
1 lee
2 zhang

3 steve
4 wang

------------------ --- ------------------

tableau2

------ --- ----------------------------------------------------

score d'identification
1 90
2 100

3 70

---------------------------- -- ---------------------

(1) L'ensemble de résultats de la jointure externe gauche inclut la jointure externe gauche clause spécifiée dans Toutes les lignes de la table de gauche, pas seulement les lignes correspondant à la colonne de jointure. Si une ligne du tableau de gauche n'a aucune ligne correspondante dans le tableau de droite, toutes les colonnes de la liste de sélection du tableau de droite seront nulles dans la ligne de l'ensemble de résultats associée.

(2)instruction SQL

select * from table1 t1 left join table2 t2 on t1.id = t2.id
Copier après la connexion


3 steve 3 70---------- - -Résultat-------------
id nom id score
----------------------------- - ----- 
1 lee 1 90 
2 zhang 2 100 

4 wang null null 
---------------- -- -----------

Remarque : contient toutes les clauses de la table1, renvoie les champs correspondants de la table2 selon les conditions spécifiées et affiche null comme null

( 3 ) Ensuite obtenez la différence

1
select from table1 t1 left join table2 t2 on t1.id = t2.id WHERE t2.id is null

-------------Résultat------------- 
id nom id score 

4 wang null null 
-------------------------------- 

Voici la situation réelle rencontrée au travail :

## Filtrez 0 vendeur (c'est-à-dire une liste d'informations sur les employés sans enregistrements de ventes).

# Vendeur (table intermédiaire de rôle utilisateur)

1
select userid from bbscs_role_user where roleid = 'sales'

# ---> 11 enregistrements

# Tableau statistique (tableau des enregistrements de ventes des utilisateurs)

1
select refid from bbscs_sales_income_stat where type = 4 and month '2012-02' and amount != 0

# ---> 4 enregistrements

les exigences sont les suivantes : les enregistrements des 7 autres vendeurs sont répertoriés à cet effet.

##########Ceci est le modèle d'instruction SQL BEGIN##########

1
select from b t2 left join a t1 on t1.a1 = t2.b1 WHERE t1.a1 is null

#########Ceci est le modèle d'instruction SQL END############

Explication : La table de gauche est la table avec plus de données ( le tableau de référence est tel que le tableau b). requête de jointure gauche. La condition Where est qu'un champ (a1) de la table de droite (une table) est nul comme (champ de jugement)

##Requête du résultat de retour SQL en tant que table temporaire

1
2
3
select from (select userid from bbscs_role_user where roleid = 'sales') t2 left 
join (select refid from bbscs_sales_income_stat where type = 4 and month '2012-02' 
and amount != 0) t1 on t2.userid = t1.refid WHERE t1.refid is null

# --->7 enregistrements

Test 1 :

##Instruction SQL, Mysql interroge différentes valeurs (principalement des différences) dans deux tables. Il y a toujours un problème avec cette requête d'instruction.

1
2
select t1.Userid from bbscs_role_user t1 left join bbscs_sales_income_stat t2 on t1.userid = t2.refid 
and t1.roleid = 'sales' and t2.type = 4 and t2.month '2012-02' and t2.amount != 0 where t2.id is null;

##Les tableaux et tableaux, les conditions et les conditions sont indépendants.

# --->18 enregistrements

Test 2 :

1
2
select t1.Userid from bbscs_role_user t1 left join bbscs_sales_income_stat t2 on t1.userid = t2.refid 
and t1.roleid = 'sales' and t2.type = 4 and t2.month '2012-02' and t2.amount != 0 and t2.id is null

##où ou et La différence

# --->22 enregistrements

###Temporaire plus puissant La table La fonction de requête place les résultats de la requête ci-dessus dans leur ensemble.

## est associé à la table intermédiaire des départements utilisateurs et est affiché trié par identifiant de département.

1
2
3
select t4.userid fromselect from (select userid from bbscs_role_user where roleid = 'sales') t2 left join 
(select refid from bbscs_sales_income_stat where type = 4 and month '2012-02' and amount != 0) t1 on 
t2.userid = t1.refid WHERE t1.refid is null ) t3, bbscs_org_user t4 where t3.userid = t4.userid order by orgId


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Compétences de traitement de structures de données volumineuses de PHP Compétences de traitement de structures de données volumineuses de PHP May 08, 2024 am 10:24 AM

Compétences de traitement de structures de données volumineuses de PHP

Comment optimiser les performances des requêtes MySQL en PHP ? Comment optimiser les performances des requêtes MySQL en PHP ? Jun 03, 2024 pm 08:11 PM

Comment optimiser les performances des requêtes MySQL en PHP ?

Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Jun 03, 2024 pm 12:19 PM

Comment utiliser la sauvegarde et la restauration MySQL en PHP ?

Comment insérer des données dans une table MySQL en utilisant PHP ? Comment insérer des données dans une table MySQL en utilisant PHP ? Jun 02, 2024 pm 02:26 PM

Comment insérer des données dans une table MySQL en utilisant PHP ?

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ? Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ? May 05, 2024 am 09:06 AM

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ?

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Dec 09, 2024 am 11:42 AM

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4

Comment utiliser les procédures stockées MySQL en PHP ? Comment utiliser les procédures stockées MySQL en PHP ? Jun 02, 2024 pm 02:13 PM

Comment utiliser les procédures stockées MySQL en PHP ?

Comment créer une table MySQL en utilisant PHP ? Comment créer une table MySQL en utilisant PHP ? Jun 04, 2024 pm 01:57 PM

Comment créer une table MySQL en utilisant PHP ?

See all articles