Запрос с внешним ключом - PullRequest
1 голос
/ 30 мая 2010

Скажем, у меня есть 2 таблицы, структура которых выглядит следующим образом:

таблица А

id | A1 | A2

стол B

id | tableA_id (внешний ключ) | B1

Записи в A имеют отношение «один ко многим» с записями в B. Какой тип операции запроса мне понадобится для «примерно так: выбрать все объекты из таблицы B, где A1 =« foo »»? В основном, примените запрос к таблице A и по его результатам найдите соответствующие зависимые объекты в таблице B

Ответы [ 3 ]

3 голосов
/ 30 мая 2010

Лучше всего выполнить с объединением:

select 
    B.* 
from 
    tableB as B 
    join tableA as A 
        on B.tableA_id=A.id 
where 
    A1='foo'
1 голос
/ 30 мая 2010

Вам необходимо объединить таблицы A и B и выдать запрос на результат:

select * from
tableA join tableB
ON tableA.A1 = tableB.tableA_id
WHERE tableA.A1 = 'foo'
1 голос
/ 30 мая 2010

SELECT * FROM tableB WHERE tableA_id IN (идентификатор SELECT FROM tableA WHERE A1 = "foo");

Подзапросы, мой друг.

Отлично работает на MySQL и Oracle. Не знаю о SQL Server. Надежда - это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...