2013-11-29 3 views
1

Я пытался найти правильный запрос для этой проблемы, но это не совсем так работать я спрашиваю здесь:Specific SQL Query

У меня есть 2 таблицы:

Таблица-1 имеет 5 строки с 6 атрибутами каждый

Таблица 2 имеет 3 строки с 5 атрибутами, а атрибут EACH соответствует 1 строке из таблицы 1. То, что я хочу, - это запрос, который даст мне все атрибуты из таблицы 1, которые содержатся в таблице 2. Я пришел к следующему:

SELECT * 
FROM Table1 
WHERE PrimKey IN 
    (SELECT * 
    FROM Table2 
    WHERE PrimKey = Index) 

Однако это не позволит мне сделать это, потому что он говорит, что во втором SELECT я не могу выбрать все, кроме меня, чтобы выбрать. Таким образом, я могу видеть только 1 строку таблицы 1 из таблицы 2, но я хочу просмотреть все атрибуты таблицы2.

+0

ошибка, что вы видите, это потому, что у вас есть более одного поля в Table2 и вы используете «SELECT *» в вашем подзапрос – Cez

+0

Предполагая, что ответ Мухаммеда Безразлично «Решите свою проблему, которую вам нужно будет предоставить нам дополнительную информацию. Покажите нам схему Таблицы 1 и Таблицы 2. – OGHaza

+0

Ответ Мухаммеда - это не то, что я ищу. Таблица 1 Схема: PrimKey, attribute1, attribute2, Attribute3 Таблица 2: PrimKey, attribute1, attribute2, Attribute3, Attribute4 где эти атрибуты имеют в качестве значений PrimKey таблицы 1. Таблица 1 представляет список одежда с атрибутами: цвет, размер и т. д. Таблица 2 представляет собой список комбинаций и атрибутов ткани, здесь представлены любые строки кортежа Т-1. Например, первая строка T2 имеет атрибут Attr-1: Shirt (PrimKey из кортежа «Shirt» в таблице 1), Attr-2: Брюки и т. Д. Что я хочу, зная таблицу 2 PrimKey, чтобы получить как в результате кортежи из таблицы 1. – user3050440

ответ

1
SELECT * 
FROM Table1 
WHERE PrimKey IN 
    (SELECT PrimKey 
    FROM Table2) 

Или INNER JOIN

SELECT t1.* 
FROM Table1 t1 INNER JOIN Table2 t2 
ON t1.ReferencingColumn = t2.ReferencingColumn