에 참여 왼쪽 외부와 SQL보기를 결합 하나의 뷰로 두 개의 별도 쿼리를 하나씩 만들 수 있습니까?내가 집이라는 전망이 쿼리
답변
그냥 내가 특별히 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
이전에 해봤지만 다시 시도 할 때 다음과 같은 오류 메시지가 나타납니다. 서버에서 실행 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 –
하위 쿼리 –
:: 응답을 만드는 시도,하지만 당신은 하위 쿼리를 사용하지 수있는 이유가있다 당신이 다른 데이터 세트를 가지고있는 것처럼? 이런 식으로 뭔가 :
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
을 제거하기 위해 편집했습니다. 명확히하기 위해 MySQL을 사용하고 있습니다. MySQL에서 사용할 수있는 다른 방법이 있습니까? –
이제 MySQL과 관련하여 추가로 생각 해보았습니다. –
쿼리 앞에서 CREATE VIEW 문을 추가하려고 했습니까? – PinnyM
이 MySQL입니까? SQL Server? 신탁? –