вот решение для 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', которая представляет собой список элементов, и другая таблица 'another_ table', которая представляет собой список номеров транзакций, и обе таблицы образуют многозначную таблицу. -много отношения, таким образом производя 'table1'. Теперь давайте представим, что вы хотите знать идентификаторы в 'another_ table', в которой есть пункты 1, 2 и 3. Это запрос для этого.