Как вложенные SQL-запросы?

#sql #database

#sql #База данных

Вопрос:

 SELECT ID, (SELECT TOP 1 CONTENT WHERE ID=ID(in the table A) FROM B) AS Content 
    FROM A
 

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

Кто-нибудь знает, как это сделать?

Комментарии:

1. Образец данных o обеспечивает точное решение….

2. Эмм … разве это не просто объединение?

3. Если вы хотите объединить содержимое из двух таблиц, просто выполните JOIN . В противном случае определите, что some data означает

4. @Liath зависит от того, сколько строк в A и B

Ответ №1:

Похоже, вам нужен коррелированный запрос, который может выглядеть так (пример для SQL Server, основанный на вашем использовании TOP n):

 SELECT      A.ID, 
            (SELECT TOP 1
                        CONTENT 
            FROM        B
            WHERE       B.ID = A.ID
            ) AS Content 
FROM        A
 

Ответ №2:

 SELECT a.*, b.* FROM a INNER JOIN b ON(a.ID=b.ID)
 

Существует также ЛЕВОЕ и ПРАВОЕ СОЕДИНЕНИЕ и ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.

Комментарии:

1. В TOP 1 запросе Алена было предложение, так что это не эквивалентно