Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка по двум таблицам
 
 автор: mithat   (25.07.2010 в 15:10)   письмо автору
 
 

Здравствуйте у меня проблема такая .Не знаю как реализовать такую задачу .
Например представим работу библиотеки
Имеются две таблицы Студенты и книги(которые на руках)
Структура у таблиц такова
Студенты St
  id    |      FIO         | reiting |
+------------------------------------
| 1     |     Иванов       |     0.5 |
| 2     |     Петров       |     0.9 |
| 3     |     Сидоров      |     0.7 |
| 4     |     Смернов      |     0.3 |
| 6     |     Ванечкин     |     0.8 |


Книги Kng
  idkn    |      Nazvanie  |  idstud |  bral    |
+------------------------------------+----------+
| 1     |     Колобок       |     1   | 10.04.2010
| 2     |     Война и мир  |     4   | 15.06.2010
| 3     |     Мастер        |     2   | 12.07.2009
| 4     |     Снег идет    |     4   | 19.06.2010
| 5     |     Храбрый      |     1   | 10.07.2010
| 6     |     Мир и снег   |     4   | 05.05.2010
| 7     |     Озерко        |     3   | 12.07.2010
| 8     |     Утро 1945    |     1   | 19.11.2009


Нужно вывести таблицу всех студентов отсортированную по рейтингу и у кого есть книги на руках
вывести самую раннюю книжку которую он взял в библиотеке (поле bral)

Короче таблица должна получиться такая

 id    |      FIO         | reiting |  idkn  |
+------------------------------------+--------+
| 2     |     Петров       |     0.9 |    3
| 6     |     Ванечкин     |     0.8 |    -
| 3     |     Сидоров      |     0.7 |    7
| 1     |     Иванов       |     0.5 |    8
| 4     |     Смернов      |     0.3 |    6


Не знаю как реализовать
select
St.id,
St.FIO,
St.reiting,
KnG.idkn
From St
LEFT JOIN Kng on ....
....
ORDER BY St.reiting ASC

  Ответить  
 
 автор: Лена   (25.07.2010 в 17:53)   письмо автору
 
   для: mithat   (25.07.2010 в 15:10)
 


SELECT s.id, s.FIO, s.reiting, k.idkn, k.bral
FROM `St` s
LEFT JOIN Kng k ON s.id = k.idstud
WHERE k.bral = (
SELECT MIN( bral )
FROM Kng
WHERE idstud = s.id )
OR k.idkn IS NULL
ORDER BY s.reiting


Поменяйте тип поля для bral, он должен быть DATE, иначе вы не сможете вытянуть самую раннюю дату по отдельной книге.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования