У меня эти три таблицы (я прилагаю предварительный просмотр). И в конце списка приведен пример данных в таблице «virustotalscans». Существует столбец с названием «virustotal». Каждый уникальный образец имеет номер, например, 165, следующий образец имеет номер 166 и т. Д.Как выбрать данные в одной таблице на другой пустой строке?
ТАБЛИЦА VIRUTOTALS
CREATE TABLE virustotals (
virustotal INTEGER PRIMARY KEY,
virustotal_md5_hash TEXT NOT NULL,
virustotal_timestamp INTEGER NOT NULL,
virustotal_permalink TEXT NOT NULL
);
CREATE INDEX virustotals_md5_hash_idx
ON virustotals (virustotal_md5_hash);
ТАБЛИЦА VIRUSTOTALSCANS
CREATE TABLE virustotalscans (
virustotalscan INTEGER PRIMARY KEY,
virustotal INTEGER NOT NULL,
virustotalscan_scanner TEXT NOT NULL,
virustotalscan_result TEXT
);
CREATE INDEX virustotalscans_result_idx
ON virustotalscans (virustotalscan_result);
CREATE INDEX virustotalscans_scanner_idx
ON virustotalscans (virustotalscan_scanner);
CREATE INDEX virustotalscans_virustotal_idx
ON virustotalscans (virustotal);
ТАБЛИЦА ЗАГРУЗКИ
CREATE TABLE downloads (
download INTEGER PRIMARY KEY,
connection INTEGER,
download_url TEXT,
download_md5_hash TEXT
-- CONSTRAINT downloads_connection_fkey FOREIGN KEY (connection) REFERENCES connections (connection)
);
CREATE INDEX downloads_connection_idx ON downloads (connection);
CREATE INDEX downloads_md5_hash_idx
ON downloads (download_md5_hash);
CREATE INDEX downloads_url_idx
ON downloads (download_url);
Пример данных в таблице «virustotalscans»: http://pastebin.com/7E7McZwT
Теперь мне нужно выбрать все образцы, которые по всем линиям в колонке «virustotalscan_result» пустые. Поэтому мне нужно выбрать все образцы, которые не обнаруживают VirusTotal с любым антивирусом. Я попытался это выбрать:
select distinct downloads.download_md5_hash from virustotalscans, virustotals,
downloads
where downloads.download_md5_hash = virustotals.virustotal_md5_hash and
virustotals.virustotal = virustotalscans.virustotal and
virustotalscans.virustotalscan_result IS NULL;
, но я получаю MD5 хэши всех образцов ... Возможно, причина в том, что все образцы содержат, по меньшей мере, одну строку, которая пуста. Это логично, потому что некоторый антивирус всегда не обнаруживает какой-то образец.
Лучший пример: http://pastebin.com/y81DPpmQ. Теперь мне нужно выбрать sample-number (column virustotal), где все строки пусты в столбце virustotalscan_result. Это может быть, например, только номер 2.
Помогите мне пожалуйста?
Большое спасибо за ответы.
У вас, кажется, есть образец только для одной таблицы в вашем «pastebin». Вы можете получить более качественные и быстрые ответы, если вы воссоздаете свои образцы таблиц в SQL Fiddle [http://sqlfiddle.com]. –
Как вы определяете «образец»? –
Образец определяется столбцом virustotal в таблице VIRUSTOTALSCANS, это номер 165. Это один образец, остальные образцы имеют другое число. Итак, лучший пример: http://pastebin.com/y81DPpmQ. Теперь мне нужно выбрать образец - номер (столбец virustotal), где все. строки в столбце virustotalscan_result пустые. Это может быть, например, номер 2 ... – Mato