Join articolato su 3 tabelle

race

Nuovo Utente
10 Ott 2020
17
0
1
Salve,
sto impazzendo per eseguire una query su 3 tabelle:

- nelle tabelle 1 e 2 ci sono solo i campi: id auto-increment e il valore
- nella tabella 3 ci sono i campi: id auto-increment, id della tabella 1, id della tabella 2

Codice:
tabella1
-------------
id | valore

tabella2
-------------
id | valore

tabella3
------------------------
id | id_t1 | id_t2


Vorrei estrarre tutti i record delle tabelle 1 e 2 che non esistono nella tabella 3, utilizzando (id_t1 + id_t2) come chiave univoca.

es:
Codice:
Risultato della query:
----------------------------------------------
valore_t1 | valore_t2
valore_t1 | valore_t2
valore_t1 | valore_t2
valore_t1 | valore_t2
valore_t1 | valore_t2

E' possibile farlo?
 

marino51

Utente Attivo
28 Feb 2013
3.020
174
63
Lombardia
nella tabella 1 ho inserito gli elementi da 1001 a 1012
nella tabella 2 ho inserito gli elementi da 2001 a 2007
nella tabella 3 ho inserito le combinazioni di tabella 1 & tabella 2 con esclusione di 2 elementi

con questa query, ottengo le 2 combinazioni escluse
SQL:
select t3.id, x.id_t1, x.id_t2 from (
  select
    t1.id as id_t1
  , t2.id as id_t2
  from tabella1 t1, tabella2 t2) x
left join tabella3 t3 ON x.id_t1 = t3.id_t1 AND  x.id_t2 = t3.id_t2
where t3.id is NULL
order by t3.id, x.id_t1, x.id_t2

questo il risultato
1610276274682.png


ps, puoi vedere l'effetto che fa anche togliendo la clausola WHERE
1610276322212.png
 
Ultima modifica:

race

Nuovo Utente
10 Ott 2020
17
0
1
Ciao,
mi da questo errore: Unknown column 't3.id_t1' in 'on clause'

chiaramente ho sostituito tabella1 t1, tabella2, tabella3 con i nomi reali e id con ID
 

marino51

Utente Attivo
28 Feb 2013
3.020
174
63
Lombardia
mi da questo errore: Unknown column 't3.id_t1' in 'on clause'

riprendi la mia query e sostituisci SOLO i nomi delle tabelle senza togliere t1, t2, t3 e lasciando al suo posto la x !!

la query é scritta così proprio per ridurre la possibilità di errore nella sostituzione dei nomi, cosa che hai provocato
 

race

Nuovo Utente
10 Ott 2020
17
0
1
Fatto!
c'è il solito errore..

Possibile sia il tipo di Database?
Ho XAMPP con MariaDB 10.4.17
 

marino51

Utente Attivo
28 Feb 2013
3.020
174
63
Lombardia
tabella3 ------------------------
id | id_t1 | id_t2

controlla il nome delle colonne, io ho usato i nomi indicati
se il nome "t3.id_t1" é sbagliato,
o é sbagliato il nome della tabella che afferisce a t3 ( t3 é l'alias della tabella3 )
o é sbagliato il nome della colonna id_t1
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M Join 3 tabelle PHP 0
L select join e sottrazione punti PHP 13
M Problema su query JOIN in tre tabelle PHP 0
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
M Ordinare una query join PHP 2
M Estrarre valori MAX da un db con una left join MySQL 8
P Query Mysql con Join PHP 2
S [PHP] Inner join su 4 tabelle PHP 6
M [PHP] Aiuto su inner join PHP 10
F [MySQL] Problema con LEFT JOIN MySQL 6
P [MySQL] Inner Join o Left Join MySQL 14
simgia [PHP] Ciclare una query JOIN PHP 2
simgia [MySQL] INNER JOIN problema MySQL 0
R [PHP] Estrapolare dati da una query left join PHP 0
C Php/Mysql query JOIN tra tabelle PHP 4
C Php/Mysql query JOIN tra due tabelle PHP 18
R [MySQL] SQL UPDATE INNER JOIN MySQL 5
G [MS Access] JOIN di due tabelle più GROUP BY MS Access 1
G [MySQL] Join o select MySQL 1
R [MySQL] Join, Count e Order (ASC & DESC)... MySQL 6
B Outer join che non funge Database 2
jdj78 inner join Classic ASP 18
V [Guida]: ho dubbi sulle Join MySQL 13
P Query con Somma di un Campo , aggregazione e join Database 3
V Quando mettere il JOIN e quando no? MySQL 1
L cinque tabelle e join PHP 2
P Join tabelle MySQL 4
Marco_88 Select distinct e join MySQL 2
Marco_88 Eliminare una colonna da una LEFT JOIN MySQL 4
M Query Join per 2 colonne MySQL 1
D Problema sintassi INNER JOIN a 3 tabelle PHP 4
L inner join MySQL 0
andrea.peo Problema query con join visualizzazione record ripetuti PHP 5
I Aiuto INNER JOIN MySQL 5
D Il JOIN che non imparerò mai ad usare MySQL 2
V Problema JOIN SQL PHP 3
A Ottimizzare di più JOIN su tabella/e da 25.000 records MySQL 0
L inner join su due tabelle PHP 5
S Mistero Join MySQL 0
G unire union e join insieme MySQL 7
ivarello JOIN Mysql PHP 2
A Count Inner Join e stampa record con id non duplicati PHP 1
P utilizzare INN JOIN PHP 8
N JOIN o non JOIN MySQL 2
D LEFT JOIN... non ci capisco nulla PHP 2
Emix Problema SQL JOIN e stampa dati MySQL 11
G progetto database e JOIN MySQL 0
P Inner join ? MS Access 1
R MySQL JOIN o UNION SELECT? (tabella vuota) MySQL 0
Monital TRIPLO JOIN è possiible? PHP 2

Discussioni simili