Mysql 选择电影的标题和所有演员

Mysql 选择电影的标题和所有演员,mysql,Mysql,我有为电影和演员评分的数据库。我需要选择电影的标题和所有演员。我创建下一个查询: SELECT movies.title, CONCAT_WS(' ', actors.name, actors.surname) as Actor FROM movies LEFT JOIN movies_actors ON movies.id = movies_actors.movie_id LEFT JOIN actors ON actors.id = movies_acto

我有为电影和演员评分的数据库。我需要选择电影的标题和所有演员。我创建下一个查询:

SELECT movies.title, CONCAT_WS(' ', actors.name, actors.surname) as Actor FROM movies                LEFT JOIN movies_actors 
ON movies.id = movies_actors.movie_id 
LEFT JOIN actors 
ON actors.id = movies_actors.actor_id
我得到的东西是:

+------------------------------+--------------+
| title                        | actor        |
+------------------------------+--------------+
| Sin City: A Dame to Kill For | Eva Green    |
| Sin City: A Dame to Kill For | Bruce Willis |
+------------------------------+--------------+
但我想得到这样的东西:

+------------------------------+--------------+
| title                        | actor        |
+------------------------------+--------------+
| Sin City: A Dame to Kill For | Eva Green    |
|                              | Bruce Willis |
+------------------------------+--------------+
我试着用

SELECT DISTINCT movies.title... 
但这没用

你能帮我吗?谢谢 这是我的数据库

CREATE TABLE movies ( 
    id int NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    title VARCHAR(255),
    director VARCHAR(255), 
    created DATE, 
    budget DECIMAL(12,2), 
    box_office DECIMAL(13,2), 
    duration TIME 
)

 CREATE TABLE actors (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   surname VARCHAR(255),
   name VARCHAR(255),
   birthday DATE
 )

ALTER TABLE movies_actors
  ADD FOREIGN KEY (movie_id) REFERENCES movies (id)
ALTER TABLE movies_actors
  ADD FOREIGN KEY FOREIGN KEY (actor_id) REFERENCES actors (id)

INSERT INTO 'movies' 
    (`id`, `title`, `director`, `created`, `budget`, `box_office`, `duration`) 
VALUES 
    (1, 'Sin City: A Dame to Kill For', 'Frank Miller, Robert Anthony Rodriguez',                          '2014', 62000000.00, 38000000.00, '01:42:00')

INSERT INTO `actors` 
    (`id`, `surname`, `name`, `birthday`) 
VALUES
    (1, 'Green', 'Eva', '1980-07-06'),
    (2, 'Willis', 'Bruce', '1955-03-19')

怎么样
GROUP\u CONCAT()


在联接之后,如果存在有效值,则始终会得到每个列单元格的结果。因此,当您在联接中找到2个有效的参与者时,标题将重复2次,正如您已经注意到的那样

+------------------------------+--------------+
| title                        | actor        |
+------------------------------+--------------+
| Sin City: A Dame to Kill For | Eva Green    |
| Sin City: A Dame to Kill For | Bruce Willis |
+------------------------------+--------------+
您可以通过标题ofc为演员和小组计算结果,得到如下结果:

+------------------------------+-------------------------+
| title                        | actor                   |
+------------------------------+-------------------------+
| Sin City: A Dame to Kill For | Eva Green,Bruce Willis  |
+------------------------------+-------------------------+

SELECT 
  movies.title, 
  GROUP_CONCAT(concat(actors.name, ' ', actors.surname)) as Actor 
FROM 
  movies                
LEFT JOIN 
   movies_actors ON movies.id = movies_actors.movie_id 
LEFT JOIN 
   actors ON actors.id = movies_actors.actor_id
GROUP BY movies.title
+------------------------------+-------------------------+
| title                        | actor                   |
+------------------------------+-------------------------+
| Sin City: A Dame to Kill For | Eva Green,Bruce Willis  |
+------------------------------+-------------------------+

SELECT 
  movies.title, 
  GROUP_CONCAT(concat(actors.name, ' ', actors.surname)) as Actor 
FROM 
  movies                
LEFT JOIN 
   movies_actors ON movies.id = movies_actors.movie_id 
LEFT JOIN 
   actors ON actors.id = movies_actors.actor_id
GROUP BY movies.title