2012-12-03 3 views
1

에 참여 왼쪽 외부와 SQL보기를 결합 하나의 뷰로 두 개의 별도 쿼리를 하나씩 만들 수 있습니까?내가 집이라는 전망이 쿼리

+0

쿼리 앞에서 CREATE VIEW 문을 추가하려고 했습니까? – PinnyM

+0

이 MySQL입니까? SQL Server? 신탁? –

답변

1

그냥 내가 특별히 MySQL의 현재 사용하지 않는 MySQL 버전 :

을 요청하는 언급을보기

CREATE VIEW `skohr`.`MyNewView` AS 

Select DISTINCT * From Home h 
LEFT OUTER JOIN Song_Setting x 
    ON h.Song_OID_FK = x.Song_OID 
INNER JOIN user u 
    ON u.User_OID = x.User_OID_FK 
+0

이전에 해봤지만 다시 시도 할 때 다음과 같은 오류 메시지가 나타납니다. 서버에서 실행 SQL 스크립트 ERROR : 오류 1349 : 뷰의 SELECT는 은 LEFT OUTER가 를 (선택 가입 홈 에서 DISTINCT *를 선택 CREATE OR 그대로'skohr'.'Home2'을 VIEW 교체 FROM 절에서 서브 쿼리 * FROM을 포함 Song_Setting, user WHERE User_OID = User_OID_FK) AS UserSongs ON Song_OID = Song_OID_FK –

+0

하위 쿼리 –

-1

:: 응답을 만드는 시도,하지만 당신은 하위 쿼리를 사용하지 수있는 이유가있다 당신이 다른 데이터 세트를 가지고있는 것처럼? 이런 식으로 뭔가 :

Select DISTINCT * From 
(
    Select Song_OID, Song_Name, Album_Name, Artist_First_Name, Artist_Last_Name, Band_Name, Genre, Album_Art_File_Path 
    From Song, Album, Artist, Track_Number, Made 
    Where Song_OID = Track_Number.Song_OID_FK AND Album_OID=Track_Number.Album_OID_FK AND Album_OID=Made.Album_OID_FK AND Artist_OID=Made.Artist_OID_FK 
) as a 
LEFT OUTER JOIN (SELECT * FROM Song_Setting, user WHERE User_OID=User_OID_FK) AS b 
ON a.Song_OID=b.Song_OID_FK 

그리고 MySQL을 위해 작동하지 않을 경우, 당신이 일시/메모리 테이블을 사용으로 찾고 남아있을 수 있습니다 생각

. 그래서 MySQL에서 임시 테이블을 생성하고, 임시 테이블을 생성하고, 아래 CTE에서 캡처 한 하위 쿼리로 채운 다음 다른 쿼리에 추가하십시오. 이 SQL 서버 인 경우

, 당신은 CTEs

는 그냥보기에 다음 코드를 드롭 활용할 수 있으며, 그것은 당신이 원하는 무엇을 제공해야합니다.

WITH Home AS 
(
Select Song_OID, Song_Name, Album_Name, Artist_First_Name, Artist_Last_Name, Band_Name, Genre, Album_Art_File_Path 
From Song, Album, Artist, Track_Number, Made 
Where Song_OID = Track_Number.Song_OID_FK AND Album_OID=Track_Number.Album_OID_FK AND Album_OID=Made.Album_OID_FK AND Artist_OID=Made.Artist_OID_FK 
) 
Select DISTINCT * From Home 
LEFT OUTER JOIN (SELECT * FROM Song_Setting, user WHERE User_OID=User_OID_FK) AS UserSongs 
ON Song_OID=Song_OID_FK 
+0

을 제거하기 위해 편집했습니다. 명확히하기 위해 MySQL을 사용하고 있습니다. MySQL에서 사용할 수있는 다른 방법이 있습니까? –

+0

이제 MySQL과 관련하여 추가로 생각 해보았습니다. –