SELECT t1.Title, t1.Variable
FROM Table t1
JOIN Table t2 USING (Title, Variable)
JOIN Table t3 USING (Title, Variable)
WHERE (t1.Location, t1.Date) = ('Location1', 'Date1')
AND (t2.Location, t2.Date) = ('Location2', 'Date2')
AND (t3.Location, t3.Date) = ('Location3', 'Date3');
Вам может понадобиться использовать SELECT DISTINCT
, но я не могу сказать, потому что я не знаю структуру таблицы, ограничение уникальности и т.д.
Re вашего скрытый комментария: Я попытался следующий сценарий в моей тестовой базе данных:
DROP TABLE IF EXISTS MyTable;
CREATE TABLE MyTable (
id SERIAL PRIMARY KEY,
title VARCHAR(20) NOT NULL,
variable VARCHAR(20) NOT NULL,
location VARCHAR(20) NOT NULL,
date DATE NOT NULL
);
INSERT INTO MyTable VALUES
(DEFAULT, 'A Tale of Two Cities', 'variable', 'America', '2010-01-01'),
(DEFAULT, 'A Tale of Two Cities', 'variable', 'England', '2010-02-01'),
(DEFAULT, 'A Tale of Two Cities', 'variable', 'France', '2010-03-01');
SELECT t1.Title, t1.Variable
FROM MyTable t1
JOIN MyTable t2 USING (Title, Variable)
JOIN MyTable t3 USING (Title, Variable)
WHERE (t1.Location, t1.Date) = ('America', '2010-01-01')
AND (t2.Location, t2.Date) = ('England', '2010-02-01')
AND (t3.Location, t3.Date) = ('France', '2010-03-01');
выход заключается в следующем:
+----------------------+----------+
| Title | Variable |
+----------------------+----------+
| A Tale of Two Cities | variable |
+----------------------+----------+
Обратите внимание, что все запросы взяты из одной таблицы, как бы я справился с этим? – Brian
Право; В приведенном выше примере я показываю самоподключение. Вы можете использовать «таблицу» три раза в одном запросе и дать каждому экземпляру отдельный псевдоним таблицы *, чтобы вы могли ссылаться на столбцы из каждого соответствующего экземпляра. –
Да, я следил за этой моделью, и она все равно не сработает. – Brian