Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
Привет всем!

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

причём ID из таблицы 1 - это первичный ключ id из таблицы 2

Запрос выглядит так:
SELECT * FROM Table2 WHERE (ID IN (...))

он работает - выбирает все ID по заданным ID.


Теперь мне нужно выбрать все ID по заданному Name
Я могу это сделать так:
SELECT ID FROM Table1 WHERE (Name IN (...))

и потом выполнить первый запрос:
SELECT * FROM Table2 WHERE (ID IN (...))


А можно ли это прописать всё в один запрос, чтобы выбирал ID из таблицы 2 по Name из таблицы 1?
20 июн 12, 18:07    [12748031]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
Не понял что именно нужно, если связать таблицы по имени, то вот:
SELECT * FROM Table2 WHERE ID IN (select ID from Table1) and table1.name = table2.name
20 июн 12, 18:14    [12748064]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
Students,

JOIN вам поможет
20 июн 12, 18:21    [12748103]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
в table 2 нету name, поэтому я не могу прописать table2.name

Table 1:
ID
Name

Table 2:
ID
20 июн 12, 18:21    [12748104]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
так не работает:

SELECT * FROM Table2 WHERE ID IN (select ID from Table1 where Name IN (...))
20 июн 12, 18:24    [12748125]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
тут join обязательно использовать?
20 июн 12, 18:27    [12748139]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
join соединяет 2 таблицы, а мне нужно просто данные отсечь по IN('...')
20 июн 12, 18:29    [12748156]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
вот сам запрос
SELECT  * FROM View_custom_LicensingRules_Joined WHERE (((((NodeSiteID = 1) AND (Published = 1)) AND (DocumentCulture = N'ru-RU'))))


он работает. мне нужно добавить последний пункт.
получается:

SELECT  * FROM View_custom_LicensingRules_Joined WHERE (((((NodeSiteID = 1) AND (Published = 1)) AND (DocumentCulture = N'ru-RU')  AND (LicensingRulesManufacturer IN (SELECT ManufacturerID FROM custom.Manufacturer WHERE ManufacturerName IN ('ABBYY'))) )))


и это не работает.
20 июн 12, 18:43    [12748230]     Ответить | Цитировать Сообщить модератору
 Re: выбрать по связанному элементу из другой таблицы  [new]
Students
Member

Откуда:
Сообщений: 1253
всё разобрался. можно было ьез join

Александр52, спасибо за помощь.
20 июн 12, 18:47    [12748249]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить