2017-03-21 4 views
0

Die Daten enthalten über 360K Nummern, so stellen Sie sicher, dass die Abfrage optimiert ist.Sql Abfrage abzurufen Resultset

DATABASE

TABLE bestehen aus Daten

+---------+ 
| Styles | 
+---------+ 
| 1 
| 2 
| 3 
| 4 
| 7 
| 8 
| 9 
| 10 
+---------+ 

Zahlen i

+--------+ 
|Numbers | 
+--------+ 
| 4 
| 5 
| 6 
| 9 
+--------+ 

Zahlen NICHT IN Stile sind suppose 5,6 wie kann ich sie bekommen.

Dank

+0

Ich entfernte die inkompatiblen Datenbank-Tags. Bitte markieren Sie nur die Datenbank, die Sie tatsächlich verwenden. –

+0

Versuchen Sie, distinct bus_id auszuwählen und zu sehen, wie viele Werte Sie zurück erhalten. Es sieht aus wie ein paar Duplikate. –

+0

Möchten Sie die 3 fehlenden Nummern wissen? – Jules

Antwort

0

Verwendung nach links oder rechts kommen diese Probe linken Gelenk

select b.col1, 'is missing' 
from (values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) as b(col1) 
     left join (values(1),(2),(3),(4),(5),(6),(9),(10)) as a(col1) on b.col1 = a.col1 
where a.col1 is null 
+0

Hallo, versuchte dies bereits, aber nicht durcharbeiten. – imvp

+0

Wie lautet der Name Ihres SQL-Servers? MS SQL, Oracle, usw.? – Jules

0

Erstellen Sie die zehn Zahlen verwendet Sie interessieren sich für on-the-fly sind und solche, die in der Tabelle entfernen. Zum Beispiel:

select row_number() over (order by bus_id) from table fetch first 10 rows only 
except 
select bus_id from table; 

Die Syntax hängt natürlich vom DBMS ab. Möglicherweise verwenden Sie ein DBMS, in dem Sie stattdessen mit der Klausel rownum, limit, top, minus, values ​​oder was auch immer arbeiten würden.

Verwandte Themen