[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос из 2-х таблиц...
BlackGhost
Имеется таблица - "Учетная карточка студента", в которой присутствует поле - GroupID (IdD его группы). Есть так же вторая таблица с номерами групп, в которой только 2 поля: Id группы и номер группы.

Мне нужно сделать запрос на выборку из Первой таблицы (Учетной карточки студента), но чтобы вместо поля GroupID подставлялось значение номера группы из второй таблицы. Естественно Id которого совпадет с GroupID.

Наверное, что-то типа такого
SELECT * FROM Students, Grups WHERE Students.GroupID=Grups.id


Но так выделиться только одно совпавшее поле, а как сделать подстановку не пойму
rooor
SELECT * FROM Students S LEFT JOIN Grups G ON S.GroupID = G.id
SlavaFr
Цитата (BlackGhost @ 16.11.2012 - 22:01)
Но так выделиться только одно совпавшее поле, а как сделать подстановку не пойму


непонятно что ты хотел этим сказать. Что в твоем понимание "поле"? Почему Таблица (Учетная_Картачка_Студента) называется Students?

соответственно описанию проблемы, твой запрос составлен верно ( если Students это и есть учетная карточка) и номер группы доллжен находится в результате запроса.





_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
BlackGhost


Но он не совсем правильно работает

После запроса у меня идет вывод значений. Все должно браться из таблицы students, только в $row_Students['GrupId'] должен быть подставлен 'nomer' из таблицы Grups. А в итоге получается следующее:

1. В $row_Students['id'] подставляется значение 'id' из таблицы Grups
2. В $row_Students['GrupId'] подставляет тоже самое ( 'id' из таблицы Grups)

А надо чтобы $row_Students['GrupId'] подставлялся 'nomer' из Grups


<?php do { // Цикл заполнения таблицы значениями?>

<tr>
<td><?php echo $row_Students['id'] ?></td>
<td><?php echo $row_Students['fio_stud'] ?></td>
<td><?php echo $row_Students['GrupId'] ?></td>
<td><?php echo $row_Students['kurs'] ?></td>
<td><?php echo $row_Students['godroj'] ?></td>
<td><?php echo $row_Students['sred_ball'] ?></td>
</tr>

<?php } while ($row_Students = mysql_fetch_assoc($Students)); ?>


Приведу дамп:

array(6) { ["id"]=> string(1) "1" ["fio_stud"]=> string(6) "Ivanov" ["GrupId"]=> string(1) "1" ["kurs"]=> string(1) "1" ["godroj"]=> string(4) "1912" ["nomer"]=> string(3) "101" }
SlavaFr
ну а что мешает то $row_Students['nomer'] вместо $row_Students['GrupId'] подставить?


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
BlackGhost
Цитата
ну а что мешает то $row_Students['nomer'] вместо $row_Students['GrupId'] подставить?


Все правильно, я уже подставил, все ок, но еще одна загвоздка. В выборке поле id из таблицы students пропадает, а вместо него появляется id из таблицы grups. Просто 'id' студента мне тоже нужно...

А в итоге в $row_Students['id'] попадает значение из grups.id
Michael
SELECT *, Students.id as student_id FROM Students, Grups WHERE Students.GroupID=Grups.id

И смотри:
$row_Students['student_id']


_____________
There never was a struggle in the soul of a good man that was not hard
BlackGhost
Спасибо, все работает)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.