2014-02-10 8 views
0

여러 데이터베이스에서 데이터를 표시하고 싶을 때 문제가 발생했습니다. 중복 값을 제공합니다.MYSQL : 여러 데이터베이스에서 DISTINCT를 선택하는 방법

그래서 동일한 서버에 3 개의 데이터베이스가 있습니다. 그들은 같은 테이블 구조를 가지고 있습니다. 그래서 여기 내 쿼리입니다 :

Query = 'SELECT id_movie, movie_tittle 
      FROM (SELECT id_movie, movie_tittle, status from margoplatinum.movie 
     UNION 
     SELECT id_movie, movie_tittle, status from detos21.movie 
     UNION 
     SELECT id_movie, movie_tittle, status from plaza21.movie) AS a 
     WHERE a.status = "Now Playing"' 

그것은 작동하지만이 같은 중복 값을 제공합니다

Query = 'SELECT id_movie, DISTINCT (movie_tittle) 
      FROM (SELECT id_movie, movie_tittle, status from margoplatinum.movie 
      UNION 
     SELECT id_movie, movie_tittle, status from detos21.movie 
     UNION 
     SELECT id_movie, movie_tittle, status from plaza21.movie) AS a 
     WHERE a.status = "Now Playing"' 

그러나 쿼리

id_movies  |  movie_tittle 
------------------------------------------ 
     2  |   THOR 2 
     1  |   Gravity 
     3  |   THOR 2 
     1  | The Legend of Hercules 
     4  |   Gravity 

그래서 나는이 같은 DISTINCT 조항을 넣어 위의 작동하지 않았다.

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'DISTINCT (movie_tittle) 
FROM (SELECT id_movie, movie_tittle, status from mar' at line 1 

그래서 여러 데이터베이스에서 SELECT DISTINCT를 작성하는 방법은 무엇입니까?

당신에게서 어떤 도움은 매우 도움이 될 것입니다 :) 이 검색어 당신

답변

2

감사합니다

SELECT id_movie, movie_tittle 
FROM (SELECT id_movie, movie_tittle, status from margoplatinum.movie 
     UNION 
     SELECT id_movie, movie_tittle, status from detos21.movie 
     UNION 
     SELECT id_movie, movie_tittle, status from plaza21.movie 
    ) a 
WHERE a.status = 'Now Playing' 

그것은 하지 반환 중복입니다. 선택 항목에 id_movie이 있는데, 이는 각 표에서 (분명히) 다릅니다.

id_movie을 제거하고, 아무 중복과 영화의 이름을 반환합니다

SELECT movie_title 
FROM (SELECT movie_title, status from margoplatinum.movie 
     UNION 
     SELECT movie_title, status from detos21.movie 
     UNION 
     SELECT movie_title, status from plaza21.movie 
    ) a 
WHERE a.status = 'Now Playing'; 

또한, 각 극장의 영화를 저장하는 나쁜 생각, 관계형 데이터베이스 관점에서. 모든 영화를 한 곳의 테이블과 함께 재생하는 영화관에 저장해야합니다.

+0

아보십시오! :) – Aprilia

0

내가 완전히 id_movie..Thank 당신, 선생님 잊어 see..I이

SELECT DISTINCT movie_tittle, id_movie 
FROM 
    (SELECT 
     id_movie, movie_tittle, status 
    from 
     margoplatinum.movie UNION SELECT 
     id_movie, movie_tittle, status 
    from 
     detos21.movie UNION SELECT 
     id_movie, movie_tittle, status 
    from 
     plaza21.movie) AS a 
WHERE 
    a.status = 'Now Playing'; 
관련 문제