В SQL или MySQL мы можем объединить таблицу и результат подзапроса? - PullRequest
3 голосов
/ 27 апреля 2010

Можем ли мы объединить таблицу с результатом подзапроса, например:

select name from gifts
    LEFT OUTER JOIN (select giftID from gifts) ...

Если нет, то можно ли это сделать некоторыми методами, такими как создание временной таблицы?

PS Может ли подзапрос появляться только с использованием IN или NOT IN, или EXISTS или NOT EXISTS?

Ответы [ 4 ]

8 голосов
/ 27 апреля 2010

да, sql работает с наборами, подзапрос возвращает набор как результат, поэтому это возможно.

вы должны дать подзапросу имя: (select * from table) as sub

5 голосов
/ 27 апреля 2010

да, вы можете использовать select как INNER JOIN, вам просто нужно дать ему псевдоним:

SELECT Name FROM Transactions T
INNER JOIN (SELECT Distinct customerID As CustomerID FROM Customers) A 
ON A.CustomerID = T.CustomerID
1 голос
/ 27 апреля 2010

Другим способом может быть создание ВИДА подзапроса. Затем выполните JOIN, как обычно (ссылаясь на VIEW).

0 голосов
/ 02 февраля 2016
SELECT CustomerId,
       Name,
       Address
FROM Table1 M
INNER JOIN Table2 C ON M.CustomerId=C.CustomerId
WHERE CustomerId IN
    (SELECT CustomerId
     FROM Table1 M
     INNER JOIN Table2 ON M.CustomeID=C.CustomerId)
ORDER BY CustomerId,
         Name,
         Address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...