У меня есть база данных, состоящая из следующих таблиц:
SourcesA: source, country, language
SourcesB: id, url, source
Сначала мне нужно создать новую таблицу. (Table1) и вставьте объединение двух таблиц, где источник совпадает.
Вторая таблица (Таблица2) должна содержать записи, которые не совпадают.
Третья операция (Таблица3) - взять первую таблицу и найти все записи, которые имеют соответствующие URL-адреса со второй таблицей.
Любые идеи приветствуется
Возможно, вы не захотите создавать новые таблицы, данные уже есть в базе данных. Вам просто нужны новые методы для просмотра этих данных. Попробуйте их, они также могут быть превращены в представления, если они вам нужны в качестве постоянного решения. Если есть реальная причина дублировать данные в базе данных, вы также можете использовать их для вставки во вновь созданные таблицы.
--result set/table 1
SELECT
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesA A
JOIN SourcesB B
ON A.source = B.source
--result set/table 2
SELECT
'SourcesA',
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesA A
LEFT JOIN SourcesB B
ON A.source = B.source
WHERE B.source IS NULL
UNION ALL
SELECT
'SourcesA',
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesB B
LEFT JOIN SourcesA A
ON B.source = A.source
WHERE A.source IS NULL
--result set/table 3
SELECT
* --being lazy here
FROM
(
SELECT
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesA A
JOIN SourcesB B
ON A.source = B.source
) T1
JOIN
(
SELECT
'SourcesA',
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesA A
LEFT JOIN SourcesB B
ON A.source = B.source
WHERE B.source IS NULL
UNION ALL
SELECT
'SourcesA',
B.id,
B.source,
B.url,
A.country,
A.language
FROM SourcesB B
LEFT JOIN SourcesA A
ON B.source = A.source
WHERE A.source IS NULL
) T2
ON T1.url = T2.url
Я бы посмотрел на использование представлений. Они представляют собой нечто среднее между наборами результатов и реальными таблицами. Поскольку все ваши данные в этих трех «таблицах» зависят от фактических данных в таблицах, это идеальное место для использования представлений.
http://www.codeproject.com/KB/database/View.aspx http://odetocode.com/Articles/299.aspx http://www.informit.com/articles /article.aspx?p=130855