26 / 4 / 3
Регистрация: 12.02.2013
Сообщений: 87
|
|
1 | |
Связь между двумя и более таблицами18.12.2013, 02:18. Показов 1608. Ответов 5
Метки нет (Все метки)
Здравствуйте. Сделал БД через 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
|
18.12.2013, 02:18 | |
Ответы с готовыми решениями:
5
Связь между таблицами Связь между таблицами Связь между 2 таблицами и занос в 1 из таблиц Связь между таблицами |
Иллюзионист
154 / 153 / 27
Регистрация: 02.10.2013
Сообщений: 330
|
||||||
18.12.2013, 02:35 | 2 | |||||
Экранируете неправильно) имена таблиц и полей в косых кавычках всегда. В прямых кавычках только значения. Т.е. 'student.ID_group'='group.group_name' — это всего лишь сравнение двух строк.
Нельзя ставить общие кавычки для записи вида Таблица.Поле. И раз выборка из нескольких таблиц, лучше указать, откуда какое поле берется (в select, я имею в виду). Это не обязательно, но имена полей же могут совпадать
1
|
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
|
|||||||||||
18.12.2013, 03:07 | 3 | ||||||||||
Не всегда, а только тогда, когда они совпадают с конструкциями SQL запросов. Это phpMyAdmin из всегда заворачивает в обратные аппострофы.
Пустой результат у вас потому, что вы джойните не по тем стобцам. У вас так
1
|
Иллюзионист
154 / 153 / 27
Регистрация: 02.10.2013
Сообщений: 330
|
|
18.12.2013, 03:18 | 4 |
И правильно делает — избавляет от тяжело отслеживаемых ошибок, причем, без побочных эффектов. Так же поступает и большая часть движков/библиотек.
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 |
0
|
20.12.2013, 13:09 | |
20.12.2013, 13:09 | |
Помогаю со студенческими работами здесь
6
Связь между двумя таблицами Связь между двумя таблицами Связь между двумя разными таблицами Связь между двумя таблицами. SQL Как создать связь между двумя таблицами? Как создать связь между двумя таблицами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |