hellow. У меня есть 3 таблицы, как показано ниже;
Mov ie Таблица, как это:
+------+-------+-----+
| id | name | |
+------+-------+-----+
+------+-------+-----+
| 1 | got | |
+------+-------+-----+
+------+-------+-----+
| 2 | Drive | |
+------+-------+-----+
+------+-------+-----+
| 3 | Thor | |
+------+-------+-----+
Janra :
+------+-------------+
| id | janra_name |
+------+-------------+
+------+-------------+
| 1 | action |
+------+-------------+
+------+-------------+
| id | comedy |
+------+-------------+
Movie_janra: (movie_id - это внешний ключ для идентификатора в таблице mov ie)
+--------+-------------+
| mov_id | janra_id |
+--------+-------------+
+--------+-------------+
| 1 | 1 |
+--------+-------------+
+--------+-------------+
| 1 | 2 |
+--------+-------------+
nation Таблица:
+------+-------------+
| id | name |
+------+-------------+
+------+-------------+
| 1 | us |
+------+-------------+
+------+-------------+
| 2 | uk |
+------+-------------+
* Таблица 1020 * movie_nation:
+------+-------------+
|mov_id| nation_id |
+------+-------------+
+------+-------------+
| 1 | 1 |
+------+-------------+
+------+-------------+
| 1 | 2 |
+------+-------------+
, тогда я использую запрос следующим образом:
SELECT *
FROM
(SELECT movie.id,
movie.name,
f.janra_name
FROM `movie`
LEFT JOIN
(SELECT mj.movie_id,
janra.janra_name
FROM movie_janra AS mj
LEFT JOIN janra ON mj.janra_id=janra.id) AS f ON f.movie_id=movie.id) AS ll
LEFT JOIN
(SELECT movie_nation.movie_id,
nation.nation
FROM movie_nation
INNER JOIN nation ON nation.id=movie_nation.nation_id) AS rr ON rr.movie_id=ll.id
(объединение movie
с результатом (movie_janra
и janra
)) КАК ll это дает мне все фильмы со всеми жанрами, как показано ниже
id name janra
1 got action
1 got comedy
, затем я присоединяюсь к этому результату (присоединиться movie_nation
с nation
) AS rr
ON rr.movie_id = ll.id
но этот результат запроса выглядит так:
+-----------+-------------+-------------+----------+
| id | name | janra | nation |
+-----------+-------------+-------------+----------+
+-----------+-------------+-------------+----------+
| 1 | got | action | us |
+-----------+-------------+-------------+----------+
+-----------+-------------+-------------+----------+
| 1 | got | action | uk |
+-----------+-------------+-------------+----------+
+-----------+-------------+-------------+----------+
| id | name | comedy | us |
+-----------+-------------+-------------+----------+
+-----------+-------------+-------------+----------+
| id | name | comedy | uk |
+-----------+-------------+-------------+----------+
Я использую MySQL.
Этот результат больше, чем я хочу. Я хочу два ряда. Спасибо всем.