SQL многие ко многим

У меня есть пять таблиц здесь:

Пользователь

+--------+----------+
| stu_id | batch-id |
+--------+----------+
|      1 |        1 |
|      2 |        1 |
|      3 |        1 |
+--------+----------+

subject_id

+------------+--------------+
| subject_id | subject_name |
+------------+--------------+
|          1 | mathematics  |
|          2 | science      |
|          3 | english      |
+------------+--------------+

партия

+----------+------------+
| batch_id | batch_name |
+----------+------------+
|        1 |   20182019 |
|        2 |   20202021 |
|          |            |
+----------+------------+

subject_batch

+----------+------------+
| batch_id | subject_id |
+----------+------------+
|        1 |          1 |
|        1 |          2 |
|        1 |          3 |
|          |            |
+----------+------------+

subject_assessment



+--------+----------+
| stu_id | batch_id |
+--------+----------+
|      1 |        1 |
+--------+----------+



SELECT, которого я пытаюсь достичь, это

+--------+----------+------------+--------------+
| stu_id | batch_id | subject_id | subject_name |
+--------+----------+------------+--------------+
|      1 |        1 |          1 | mathematics  |
|      1 |        1 |          2 | science      |
|      1 |        1 |          3 | english      |
|        |          |            |              |
+--------+----------+------------+--------------+

я пробовал =

$query = "SELECT subject.subject_name, user.first_name, batch.batch_name 
from subject_assessment inner join user 
ON subject_assessment.student_id = user.user_id inner 
join batch ON subject_assessment.batch_id = batch.batch_id  
left join subject_batch on = subject.subject_name = subject_batch.subject_id";

но потерпите неудачу. Это работает, когда я удаляю

subject.subject_name 

а также

left join left join subject_batch on = subject.subject_name = subject_batch.subject_id"

Но тогда я не смогу получить subject_id и subject_name.

Спасибо, если вы могли бы помочь. Спасибо заранее.

Пожалуйста, исправьте форматирование таблиц, теперь невозможно просмотреть данные.

Ildar Akhmetov 09.04.2019 18:04

Извините за беспокойство

KingJ 09.04.2019 18:10
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот как это должно выглядеть:

select user.stu_id, user.batch_id, subject.subject_id, subject.subject_name
from user 
inner join subject_batch on user.batch_id = subject_batch.batch_id 
inner join subject on subject.subject_id = subject_batch.subject_id
order by user.stu_id;

Вот где вы можете запустить его:

https://paiza.io/projects/RtN8fMS1vVlQ2mtEYpqf7g?language=mysql

Спасибо, я могу заставить кодирование работать и получить конкретные данные. Спасибо большое.

KingJ 09.04.2019 19:38

Другие вопросы по теме