Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
26 / 4 / 3
Регистрация: 12.02.2013
Сообщений: 87
1

Связь между двумя и более таблицами

18.12.2013, 02:18. Показов 1605. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Сделал БД через phpmyadmin, нормализовал по первым трем НФ. Простейшие запросы на выборку из одной таблицы получается делать, но как только пытаюсь связать хотя бы 2 таблицы, возвращается пустой результат.
Предметная область - электронный журнал для студентов.

Есть таблицы: department(отделение), group(группа), student(данные о студенте), subjects(предметы),
ratings(оценки студентов по предметам).

Поля в таблицах:
deparment - ID, department_name
group - ID, ID_department, group_name
student - ID, First_Name, Second_Name, Phone, ID_group
subjects - ID, subject
ratings - ID, ID_student, ID_subjects, rating

Если я все правильно понимаю, то выборку надо делать одним запросом, связывая таблицы через айдишники(при создании были присвоены PK).

Вот пример моего запроса:
SELECT `Second_Name`, `group_name`
FROM `student` JOIN `group` ON 'student.ID_group'='group.group_name';
Из запроса я хотел получить вывод фамилии студента и его группу(в нормальном виде, а не айдишником). Возвращается пустой результат.

Читал http://www.anton-pribora.ru/ar... mysql-join + темы на форумах(в основном с sql.ru)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2013, 02:18
Ответы с готовыми решениями:

Связь между таблицами
Доброго времени суток! Мне нужна Ваша помощь. Создаю новостной сайт. Есть две таблицы в БД: 1....

Связь между таблицами
Здравствуйте! PHP только начал изучать. Есть 4 таблицы: 1. Оборудование id name 1 axc 2 axcz...

Связь между 2 таблицами и занос в 1 из таблиц
У меня есть 2 таблицы. в 1 таблице есть. id и catalog во 2 таблице id и id_catalog Мне нужно...

Связь между таблицами
Сижу ломаю голову и не понимаю как реализована связь между таблицами и структура самой БД. т.е. мы...

5
Иллюзионист
154 / 153 / 27
Регистрация: 02.10.2013
Сообщений: 330
18.12.2013, 02:35 2
Экранируете неправильно) имена таблиц и полей в косых кавычках всегда. В прямых кавычках только значения. Т.е. 'student.ID_group'='group.group_name' — это всего лишь сравнение двух строк.
Нельзя ставить общие кавычки для записи вида Таблица.Поле.
И раз выборка из нескольких таблиц, лучше указать, откуда какое поле берется (в select, я имею в виду). Это не обязательно, но имена полей же могут совпадать
SQL
1
2
3
SELECT `student`.`Second_Name`, `group`.`group_name`
FROM `student` 
JOIN `group` ON `student`.`ID_group` = `group`.`group_name`
1
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
18.12.2013, 03:07 3
Цитата Сообщение от philin Посмотреть сообщение
Экранируете неправильно) имена таблиц и полей в косых кавычках всегда.
Не всегда, а только тогда, когда они совпадают с конструкциями SQL запросов. Это phpMyAdmin из всегда заворачивает в обратные аппострофы.

Цитата Сообщение от kep4uk Посмотреть сообщение
Возвращается пустой результат.
Пустой результат у вас потому, что вы джойните не по тем стобцам. У вас так
SQL
1
2
3
SELECT `student`.`Second_Name`, `group`.`group_name`
FROM `student` 
JOIN `group` ON `student`.`ID_group` = `group`.`group_name`
Но ведь у вас в student.ID_group не имя группы, а ее ID. Соотвественно нужно так
SQL
1
2
3
4
5
SELECT
student.second_name,
`group`.group_name 
FROM student
JOIN `group` ON student.id_group = `group`.id
1
Иллюзионист
154 / 153 / 27
Регистрация: 02.10.2013
Сообщений: 330
18.12.2013, 03:18 4
Цитата Сообщение от r3ntg3n Посмотреть сообщение
Это phpMyAdmin из всегда заворачивает
И правильно делает — избавляет от тяжело отслеживаемых ошибок, причем, без побочных эффектов. Так же поступает и большая часть движков/библиотек.
0
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 3
20.12.2013, 12:28 5
а если вот так:
SELECT * FROM `tbl_name` INNER JOIN `tbl_name_2` WHERE tbl_name.colum = tbl_name_2.colum
0
26 / 4 / 3
Регистрация: 12.02.2013
Сообщений: 87
20.12.2013, 13:09  [ТС] 6
Цитата Сообщение от buggeRR Посмотреть сообщение
а если вот так:
SELECT * FROM `tbl_name` INNER JOIN `tbl_name_2` WHERE tbl_name.colum = tbl_name_2.colum
Я уже все сделал, но все-равно спасибо =)
0
20.12.2013, 13:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2013, 13:09
Помогаю со студенческими работами здесь

Связь между двумя таблицами
Есть 2 таблички. В одной из них ключевое поле ID. Во второй этот ID может быть в двух полях...

Связь между двумя таблицами
По работе приходится изучать SQL сервер. С запросами SQL разобрался более или менее, сейчас изучаю...

Связь между двумя разными таблицами
Добрый день. Есть форма "Обзор комплект." и на ней необходимо при выборе в поле со списком...

Связь между двумя таблицами. SQL
Существует две таблицы для гостевой книги. Одна собственно для формы отправки сообщения,другая...

Как создать связь между двумя таблицами?
Ребят кто может подкинуть код который работает с двумя базами Access для проекта WindowsForm....

Как создать связь между двумя таблицами
Я создала две таблицы в Database Desktop, но не могу их связать один-ко-многим. Кто может объяснить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru