2013-09-25 3 views
0

다음은 쿼리를 실행하려는 쿼리입니다.하지만 지금은 이유가있어 지금은 포기할 수 없습니다.mysql 쿼리가 데이터를받지 못했습니다.

SELECT films.movie_title, films.rating, films.actor, reviewed.review 
     FROM films 
     INNER JOIN reviewed 
     ON films.movie_id=reviewed.review_id 

나는 이걸 보았습니다. 이것이 문제 일 수 있다고 생각하십시오. 두 개의 기본 키에 가입하는 것처럼

ALTER TABLE `reviewed` 
    ADD CONSTRAINT `reviewed_ibfk_1` FOREIGN KEY (`movie_id`) REFERENCES `films` (`movie_id`), 
    ADD CONSTRAINT `reviewed_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `films` (`movie_id`) ON DELETE CASCADE; 

-- 
-- Table structure for table `films` 
-- 

CREATE TABLE IF NOT EXISTS `films` (
    `movie_id` int(4) NOT NULL AUTO_INCREMENT, 
    `movie_title` varchar(100) NOT NULL, 
    `actor` varchar(100) NOT NULL, 
    `rating` varchar(20) NOT NULL, 
    PRIMARY KEY (`movie_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ; 

-- 
-- Dumping data for table `films` 
-- 

INSERT INTO `films` (`movie_id`, `movie_title`, `actor`, `rating`) VALUES 
(22, 'Batman Begins', 'Bale', 'Good'); 

-- -------------------------------------------------------- 

-- 
-- Table structure for table `reviewed` 
-- 

CREATE TABLE IF NOT EXISTS `reviewed` (
    `review_id` int(4) NOT NULL AUTO_INCREMENT, 
    `review` mediumtext NOT NULL, 
    `movie_id` int(4) NOT NULL, 
    PRIMARY KEY (`review_id`), 
    KEY `movie_id` (`movie_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 

-- 
-- Dumping data for table `reviewed` 
-- 

INSERT INTO `reviewed` (`review_id`, `review`, `movie_id`) VALUES 
(1, 'Really good film.', 22); 

-- 
ALTER TABLE `reviewed` 
    ADD CONSTRAINT `reviewed_ibfk_1` FOREIGN KEY (`movie_id`) REFERENCES `films` (`movie_id`), 
    ADD CONSTRAINT `reviewed_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `films` (`movie_id`) ON DELETE CASCADE; 
+2

:

이 쿼리를 시도? – andrewsi

답변

5

이 보이는 (films.movie_id = reviewed.review_id) 대신에 하나의 주 및 외국 하나의 (films.movie_id = reviewed.movie_id).

다음 시도 보내기 @andrewsi 언급으로

SELECT films.movie_title, films.rating, films.actor, reviewed.review 
     FROM films 
     INNER JOIN reviewed 
     ON films.movie_id=reviewed.movie_id 
+1

어쨌든 나에게 이길지라도, 열쇠를 언급 할 때 +1. – Demonslay335

0

를, 당신의 ON 절은 잘못 나타납니다. 영화 ID를 리뷰의 ID와 일치 시키려하고 있습니다. 이는 사실이 아니어야합니다. INNER JOIN이 ON 절에서 올바르게 일치하지 않으면 일반적으로 결과가 제공되지 않습니다. 당신은`films.movie_id = reviewed.movie_id`에 합류하고 싶지 않아

SELECT films.movie_title, films.rating, films.actor, reviewed.review 
FROM films 
INNER JOIN reviewed 
    ON films.movie_id=reviewed.movie_id 
관련 문제