ho questa seguente scenario, una tabella con queste colonne:Confronta diversi ordini della stessa tabella
table_id|user_id|os_number|inclusion_date
Nel sistema, l'os_number è sequenziale per gli utenti, ma a causa di un errore di sistema alcuni utenti inserita Sistemi operativi nell'ordine sbagliato. Qualcosa di simile a questo:
table_id | user_id | os_number | inclusion_date
-----------------------------------------------
1 | 1 | 1 | 2015-11-01
2 | 1 | 2 | 2015-11-02
3 | 1 | 3 | 2015-11-01
- Nota numero os 3 inserito prima del numero os 2
Che cosa ho bisogno:
recuperare il table_id delle righe 2 e 3, che è guasto.
Ho questi due di selezione che mi mostra la table_id in due ordini diversi:
select table_id from table order by user_id, os_number
select table_id from table order by user_id, inclusion_date
io non riesco a capire come posso confrontare questi due seleziona e vedere quali utenti sono interessati da questo bug del sistema .
l'intersezione delle due istruzioni select risulterà in quelle table_id che non sono state interessate dal bug. quindi una query sql che esclude questo specifico table_id ti darà l'elenco di table_id che è stato colpito. Potrei sbagliarmi comunque. – beingsrv
La vera domanda è: perché hai il 'os_number' del tutto? Sembra ridondante se può essere "calcolato" dall'ordine del 'inclusion_date' –
@a_horse_with_no_name potrebbe essere una versione semplificata della sua query. Ad esempio, os_number potrebbe essere una chiave esterna che indirettamente punta a un numero di versione. –