Каков стандартный SQL-запрос для получения пересечения таблиц?

Выбор объединения:

select * from table1 
union 
select * from table1_backup 

Каков запрос для выбора пересечения?

Ответ 2

SELECT *
FROM table1
WHERE EXISTS
(SELECT *
FROM table1_backup
WHERE table1.pk = table1_backup.pk)

работы

Ответ 4

внутреннее соединение я думаю: пусть T1 и T2 имеют одинаковую структуру:

выберите T1. * from Внутреннее соединение T1 T2 на T1.pkField = T2.pkField

Ответ 5

"intersect" также является частью стандартного SQL.

Внутреннее соединение дает другой ответ.

Ответ 6

вот решение для mySQL:

CREATE TABLE table1(
id INT(10),
fk_id INT(10),
PRIMARY KEY (id, fk_id),
FOREIGN KEY table1(id) REFERENCES another_table(id),
FOREIGN KEY table1(fk_id) REFERENCES other_table(id)
);

SELECT table1.* FROM table1 as t0
INNER JOIN table1 as a ON (t0.id = a.id and fk_id=1)
INNER JOIN table1 as b ON (t0.id = b.id and fk_id=2)
INNER JOIN table1 as c ON (t0.id = c.id and fk_id=3)
ORDER BY table1.id;

В принципе, у вас есть таблица математических подмножеств (например, 1 = {1, 2, 3}, 2 = {3, 4, 2},..., n = {1, 4, 7}) с атрибут id, который является установленным числом, и fk_ id, который ссылается на PRIMARY KEY таблицы элементов, надмножество (что означает возможные значения для чисел в фигурных скобках). Для тех, кто не математически склонен, пусть притворяется, что у вас есть таблица "other_ table", которая представляет собой список элементов, а другая таблица "другая_ таблица", которая представляет собой список номеров транзакций, и обе таблицы образуют - многие отношения, таким образом производя "таблицу1". теперь пусть притворяется, что вы хотите узнать идентификатор в "другой_ таблице", в которой есть пункты 1, 2 и 3., что запрос сделать это.

Ответ 7

Пересечение двух одинаковых таблиц a и b может быть выполнено следующим образом:

SELECT a.id, a.name
FROM a INNER JOIN b
USING (id, name)

Ответ 8

подзапросов?! на самом деле?

чтобы получить пересечение таблицы1 и таблицы2:

SELECT * FROM table1, table2 WHERE table1.pk=table2.pk;

Ответ 9

select distinct * from (select * from table1 union select * from table1_backup)