Vanno bene queste due query per estrarre da due tabelle?

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Ciao a tutti.
Ho due tabelle:

Tabella A (Importazione)

ID RESID BBLIVERATE NOME
1 252 FG95 Lorenzo
2 635 96F68 Mario
3 987 T5274 Pippo


Tabella B (Prenotazioni)

ID RESID BBLIVERATE NOME
1 252 FG95 Lorenzo
2 635 LP426 Mario
3 987 T5274 Pippo

Sono praticamente identiche. Io importo i dati da una fonte xml e li inserisco in importazione (A) .
Devo mostrare due tabelle a video:
- La prima con le nuove importazioni che non esistono nella tabella prenotazioni. Confronto il RESID e se non esiste la visualizzo. E la query dovrebbe andare bene questa:
Codice:
select *,DATE_FORMAT(StartDate,'%d-%m-%Y') as StartD,DATE_FORMAT(EndDate,'%d-%m-%Y') as EndD from 
importazioni where ResId not in (select ResId from prenotazioni)

- La seconda devo verificare se RESID esiste ma se esiste devo verificare anche che il BBLIVERATE sia uguale. Se è uguale non mi interessa ma se è diverso lo mostro a video.
Per questa sembra funzionare questa:

Codice:
SELECT *,DATE_FORMAT(importazioni.StartDate,'%d-%m-%Y') as StartD,DATE_FORMAT(importazioni.EndDate,'%d-%m-%Y') as EndD FROM `prenotazioni`,importazioni WHERE prenotazioni.`ResId`=importazioni.`ResId` and importazioni.`BbliverateId`!=prenotazioni.BbliverateId

Secondo voi vanno bene? Provandole sembra di si ma vorrei qualche consiglio ...

Grazie mille
 

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
nella prima query, inserirei la clausola where, inutile estrarre tutti i valori esistenti quando basta
fare la verifica sul valore cercato
ovviamente ResId della tabella prenotazioni sarà definita con un indice di ricerca

PHP:
select *,DATE_FORMAT(StartDate,'%d-%m-%Y') as StartD,DATE_FORMAT(EndDate,'%d-%m-%Y') as EndD
from importazioni 
where ResId not in (select ResId from prenotazioni where ResId=importazioni.ResId)

nella seconda otterrai il vantaggio dell'indice summenzionato, ma scusami, hai scritto
PHP:
prenotazioni.ResId=importazioni.ResId
quindi io scriverei
PHP:
prenotazioni.BbliverateId!=importazioni.BbliverateId
per una semplice simmetria
ciao
Marino
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Io ho due visualizzazioni diverse fra la prima e la seconda query. Quindi eseguo due query. Se scrivo come hai suggerito te
Codice:
prenotazioni.BbliverateId!=importazioni.BbliverateId

Lui mi estrae anche i record che non mi servono invece io devo estrarre solo gli aggiornamenti. Prendendo per esempio la tabella al primo post lui mi dovrà estrarre solo

2 635 96F68 Mario

che è in importazione. Quello che è in prenotazione non mi interessa perchè suppongo che sia un aggiornamento e quindi lo dovrò sovrascrivere.

Se inserisco
Codice:
prenotazioni.`ResId`=importazioni.`ResId`
lui mi estrae i record giusti (devo fare i test per bene ma sembra giusto)

Sbaglio?

Codice:
 

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
Se inserisco
Codice:
prenotazioni.`ResId`=importazioni.`ResId`
lui mi estrae i record giusti (devo fare i test per bene ma sembra giusto)
questo vale per la prima query, la ottimizza estraendo solo l'elemento cercato in quel momento, e come detto, se il campo prenotazioni.`ResId è indicizzato, ne guadagna nel tempo di esecuzione

Codice:
prenotazioni.BbliverateId!=importazioni.BbliverateId
questa modifica vale solo per la seconda query non cambia assolutamente nulla anche se non la applichi,
è solo una mia "mania" di avere codice ordinato
 

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
crea un indice specifico per il campo ResId della tabella prenotazioni
la tabella non conterrà un numero elevato di records (probabilmente) ma penso che il risultato ne ripaghi il lavoro
 
Discussioni simili
Autore Titolo Forum Risposte Data
I [HTML] Tooltips vanno a capo HTML e CSS 6
felino Sito web OnePage e Indicizzazione: vanno d'accordo? SEO e Posizionamento 14
I dopo aver spostato il div i link dentro non vanno più. HTML e CSS 2
S Dove vanno a finire le discussioni inviate? Discussioni Varie 1
P le select vanno per i fatti loro e non a fianco alle label PHP 2
P due select che non vanno d'accordo fra di loro PHP 4
maxbossi Sei iscritto ma i messaggi non vengono pubblicati (e vanno in moderazione)? Comunicazioni dallo Staff 0
V script che vanno in conflitto Javascript 0
W script cgi come vanno usati Web Server 0
M I File Sorgente vanno forniti al cliente ? Leggi, Normative e Fisco 2
G Collegamenti strani che non vanno con htaccess Apache 5
M Quali sono i siti che vanno di moda Discussioni Varie 0
M Jamstack e i siti fatti "bene" Programmazione 0
Z Rete Cablata Casalinga: l'ho progettata bene? Reti LAN e Wireless 0
M COMPRO Pagine Facebook Pago Bene (Categorie Sport, Intrattenimento, Moda) Annunci servizi di Social Media Marketing 1
C [HTML] SONDAGGIO: IL TUO SITO FUNZIONA BENE SU TUTTI I DISPOSITIVI Discussioni Varie 1
K BlueGriffon 1.8 non mi funziona bene su Windows Vista Webdesign e Grafica 0
K BlueGriffon 1.8 non mi funziona bene su Windows Vista Windows e Software 1
maxbossi Regolamento Regolamento forum phpBB - leggi bene prima di postare!!! phpBB 0
S ciao a tutti come sto? molto bene Presentati al Forum 1
A.Passariello [Cerco] [retribuito] Pack da 10 articoli su tema Vacanze. Pago bene Offerte e Richieste di Lavoro e/o Collaborazione 0
B [COMPRO] Compro pagine attive minimo 100.000 fans (PAGO BENE) Annunci servizi di Social Media Marketing 0
borgo italia vi sta bene Discussioni Varie 9
E Invio mail che funzioni bene PHP 14
C script non va bene, dove è l'errore? Javascript 3
P Una controllatina al codice che non va bene.... Javascript 8
Z joomla + yoflash, creare un homepage fatta bene Joomla 5
cervelliamo realizzato menù a tendina con css, internet explorer non lo legge bene HTML e CSS 15
A non formatto bene il layout HTML e CSS 4
T Firefox non mi legge bene uno script HTML e CSS 3
F il logo non si vede bene. come mai? HTML e CSS 1
D video flash che non si carica! in locale tutto bene ma online non si carica HTML e CSS 7
C Chi sa usare bene Excel, per favore? HTML e CSS 0
borgo italia andare in ferie fa bene Discussioni Varie 9
H urgente formail non mi funziona bene.. PHP 5
lukeonweb Le cose che fanno bene al calcio... Discussioni Varie 4
F Agloco!promette bene! Guadagnare col Sito 0
M MSN 7.0 va bene per Windows ME? Windows e Software 0
G Cominciare bene PHP 4
K spegazione su queste righe di codice PHP 2
S Differenza tra queste righe di codice Javascript 2
A Le espressioni regolari: queste sconosciute! PHP 7
E SESSIONI:queste sconosciute PHP 20
max1850 Come si fanno queste intro stile film? Flash 4
K queste funzioni http PHP 3
B Come fare con queste aree sensibili? Flash 2
L Dove trovo un contatore con queste caratteristiche??? Discussioni Varie 3

Discussioni simili