2010-04-27 1 views
2

Можем ли мы присоединиться к столу с результатом подзапроса, таких как:В SQL или MySQL мы можем объединить таблицу и результат подзапроса?

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

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

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

+0

то, что вы описываете, называется производной таблицей или встроенным видом и довольно распространено. Я не мог жить без них! –

ответ

5

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

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

5

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

SELECT Name FROM Transactions T 
INNER JOIN (SELECT Distinct customerID As CustomerID FROM Customers) A 
ON A.CustomerID = T.CustomerID 
1

Другой способ, может быть создайте VIEW подзапроса. Затем выполните ОБЪЕДИНЕНИЕ, как обычно, (ссылаясь на VIEW).

0
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 

 Смежные вопросы

  • Нет связанных вопросов^_^