2015-04-27 3 views
-1

У меня есть несколько таблиц, каждый из которых связан PersonID.Поиск значений из результата SQL-запроса в другой таблице

  • Номер телефона содержит столбцы для номера телефона (рабочий, сотовый, домашний), номера телефонов, значение для того, включено ли SMS-сообщение и идентификаторы лиц.
  • Лицо содержит имена и адреса электронной почты, а его ключ - это человек ID
  • AttributeValue содержит значения для нескольких атрибутов 'custom' (каждый атрибут имеет уникальный атрибут AttributeId). Ключевыми столбцами в этой таблице являются AttributeId, Value и EntityId. EntityId соответствует идентификатору личности

Я пытаюсь найти соответствующие имена и адреса электронной почты из PersonTable для идентификатора Person, который соответствует следующим критериям.

FROM [rock].[dbo].[AttributeValue] 
WHERE AttributeId='1770'; 

FROM [rock].[dbo].[PhoneNumber] 
WHERE IsMessagingEnabled=0 AND NumberTypeValueId=12 
+0

Да, это возможно. на самом деле, [есть много способов сделать это.] (http://stackoverflow.com/a/29362848/3094533) Однако в вашем случае я думаю, что вы ищете JOIN, где вы получаете данные из несколько таблиц. –

+0

Какая СУБД вы используете? Postgres? Oracle? –

+0

Пожалуйста, поделитесь своими структурами таблиц, некоторыми примерами данных и результатом, который вы пытаетесь получить для этих данных. – Mureinik

ответ

1

Прежде всего в SQL, когда вы получили несколько таблиц, связанных одним идентификатором, вы можете использовать объединения.

Например, я получил таблицу Customer (ID, имя, Firstname), таблица Адрес (ID, CustomerID, имя, PostalCode, город) и стол Телефон (ID, CustomerID, PhoneHome, PhoneMobile)

вы можете использовать этот вид запроса, чтобы найти адреса и телефоны соответствующих клиентов:

SELECT [Address.Name], [Phone.PhoneHome], [Phone.PhoneMobile] FROM Address, Phone 
INNER JOIN Address ON [Customer.ID] = [Address.CustomerID] 
INNER JOIN Phone ON [Customer.ID] = [Phone.CustomerID] 
WHERE [Customer.ID] = "Value" 

Надеется, что это поможет, по крайней мере, вы можете найти хорошие примеры соединений на:

http://openclassrooms.com/courses/introduction-aux-jointures-sql (я верю тебе» французский, поэтому это хороший французский сайт для узнать об этом.)

Иметь хороший день

+0

Hey VERYNET, Я не французский! – OldAccount

0

Что-то вроде этого?

SELECT * FROM Person WHERE PersonID IN (SELECT PersonID FROM ....) 
Смежные вопросы