|
|
|
Forum Member
      
участник
Last Login: 19.05.2007 12:29
Сообщ.: 37,
Visits: 334
|
|
В Transact-SQL есть конструкция FULL JOIN. В запросах ACCESSa ее применить нельзя...либо LEFT, либо RIGHT.....а очень нужно....
Какая альтернатива есть этой команде?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
Искал ответ на этот же вопрос и получил ссылку на эту тему.
to Михайло: а если просто, прежде чем что то советовать, попробовать воспользоваться своим советом самому?
С уважением,
|
|
|
|
|
Supreme Being
      
участник
Last Login: 24.11.2007 8:22
Сообщ.: 403,
Visits: 4 348
|
|
| Давайте исходить из того что не все присутствующие знают что возвращает FULL JOIN, но при этом могут помочь... если им показать что хочется получить в результате
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.12.2007 7:03
Сообщ.: 359,
Visits: 3 784
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 07.03.2008 19:04
Сообщ.: 328,
Visits: 1 857
|
|
FULL [ OUTER ]
Указывает, что в результирующий набор включаются строки как из левой, так и из правой таблицы, несоответствующие условиям соединения, а выходные столбцы, соответствующие оставшейся таблице, устанавливаются в значение NULL. Этим дополняются все строки, обычно возвращаемые при помощи INNER JOIN.
(http://msdn2.microsoft.com/ru-ru/library/ms177634.aspx)
Я думаю, что FULL JOIN = LEFT JOIN + UNION + RIGHT JOIN
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.12.2007 7:03
Сообщ.: 359,
Visits: 3 784
|
|
| Что-то ссылка не работает... Full outer join A full outer join combines the results of both left and right outer joins. These joins will show records from both tables, and fill in NULLs for missing matches on either side. Some database systems do not support this functionality, but it can be emulated through the use of left and right outer joins and unions (see below). Example full outer join (ANSI 92 standard syntax): SELECT * FROM employee FULL OUTER JOIN department ON employee.DepartmentID = department.DepartmentID +-----------+--------------+----------------+--------------+ | LastName | DepartmentID | DepartmentName | DepartmentID | +-----------+--------------+----------------+--------------+ | Smith | 34 | Clerical | 34 | | Jones | 33 | Engineering | 33 | | Robinson | 34 | Clerical | 34 | | Jasper | 36 | NULL | NULL | | Steinberg | 33 | Engineering | 33 | | Rafferty | 31 | Sales | 31 | | NULL | NULL | Marketing | 35 | +-----------+--------------+----------------+--------------+ The same example, for use on databases that do not support FULL OUTER JOIN: SELECT employee.LastName, employee.DepartmentID, department.DepartmentName, department.DepartmentID FROM employee LEFT JOIN department ON employee.DepartmentID = department.DepartmentID UNION SELECT employee.LastName, employee.DepartmentID, department.DepartmentName, department.DepartmentID FROM employee RIGHT JOIN department ON employee.DepartmentID = department.DepartmentID WHERE employee.DepartmentID IS NULL
|
|
|
|