SQL Fiddle这里的表是我的全部代码:顺序的列是在另一个表在MySQL
DROP TABLE tmdb_movies;
CREATE TABLE tmdb_movies (
tmdb_id INTEGER NOT NULL PRIMARY KEY,
movie_title TEXT NOT NULL,
popularity INTEGER NOT NULL
);
INSERT INTO tmdb_movies (tmdb_id, movie_title, popularity) VALUES
(1, 'Logan', '88.4'),
(2, 'Iron Man', '74.3'),
(3, 'SuperMan', '102.56');
DROP TABLE genres;
CREATE TABLE genres (
tmdb_id INTEGER NOT NULL,
genres_name TEXT NOT NULL
);
INSERT INTO genres (tmdb_id, genres_name) VALUES
(1, 'Crime'),
(1, 'Comedy'),
(1, 'Drama'),
(2, 'Action'),
(2, 'Horror'),
(2, 'Documentary'),
(3, 'Music');
SELECT distinct genres.tmdb_id
FROM genres
JOIN tmdb_movies USING (tmdb_id)
ORDER BY tmdb_movies.popularity DESC
什么,我在这里做的是:我想popularity
列tmdb_movies
表排序表。
SQL查询在[SQL Fiddle][1]
工作完全正常不过,我得到这个错误,当我在我的MySQL运行
3065 - 表达#1 ORDER BY子句中不在SELECT列表中,引用列'DB.tmdb_movies.popularity'不在SELECT列表中;这与DISTINCT不兼容
这可能是由于我的默认SQL模式。我需要改变模式吗?无论如何要做到这一点,而不改变模式,因为我认为默认模式会更好?
你正在使用哪个版本的mysql? – scaisEdge