ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Очень простой запрос, но как?)
  #1  
Старый 07.02.2010, 03:49
Аватар для dimash
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
Thumbs up Очень простой запрос, но как?)

Есть таблица t1. В ней записи
Код:
Динамо
Шахтар
Таврия
Металлург Донецк
Оболонь
Есть таблица t2. В этой таблице t2 множество записей и каждая запись соответствует одной конкретной записи из таблица t1 (либо Динамо, либо Шахтар, либо Таврия, либо Металлург Донецк, либо Оболонь). Связь по id.

Как должен выглядеть запрос, который выводит по 3 последних по времени записи из таблицы t2 для каждого из значений таблицы t1? Результатом, очевидно, должен быть двумерный массив.

В итоге картина:
Код:
Динамо
1. ...
2. ...
3. ...
Шахтар
1. ...
2. ...
3. ...
Таврия
1. ...
2. ...
3. ...

Последний раз редактировалось dimash; 07.02.2010 в 04:46..
 
Ответить с цитированием

  #2  
Старый 07.02.2010, 07:41
Аватар для imajo.ati
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

у тебя какая БД?
Цитата:
MySQL Function cannot return Composite datatype
тебе придется склеивать результат в строку и потом парсить

и нисколько это не простой запрос!
 
Ответить с цитированием

  #3  
Старый 07.02.2010, 12:31
Аватар для dimash
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

Цитата:
Сообщение от imajo.ati  
у тебя какая БД?

тебе придется склеивать результат в строку и потом парсить

и нисколько это не простой запрос!
MySQL.
 
Ответить с цитированием

  #4  
Старый 07.02.2010, 13:17
Аватар для -=Zhenek=-
-=Zhenek=-
Участник форума
Регистрация: 31.12.2007
Сообщений: 279
Провел на форуме:
1725509

Репутация: 114
Отправить сообщение для -=Zhenek=- с помощью ICQ
По умолчанию

В таблице t2 есть указание на то что эта запись относится к таблице t1 ?

пример t1

id name
1 Бавария
2 Швецария


t2

id name parent
1 ббла 1
2 олол 2

если есть,то запрос,цикл и все дела
 
Ответить с цитированием

  #5  
Старый 07.02.2010, 13:28
Аватар для CPU0
CPU0
Участник форума
Регистрация: 05.01.2010
Сообщений: 127
Провел на форуме:
587522

Репутация: 61
Отправить сообщение для CPU0 с помощью ICQ
По умолчанию

SELECT * FROM t2 INNER JOIN t1 ON t2.id=t1.id WHERE id IN (SELECT id FROM t1) ORDER BY id DESC LIMIT 3

попробуй, а так бы лучше загурзил дамп ДБ

p.s. не поучится так -
Цитата:
Динамо
1. ...
2. ...
3. ...
Шахтар
1. ...
2. ...
3. ...
Таврия
1. ...
2. ...
3. ...
в лучшем случае получится так
Цитата:
Динамо 1. ...
Динамо 2. ...
Динамо 3. ...
Шахтар 1. ...
Шахтар 2. ...
Шахтар 3. ...
Таврия 1. ...
Таврия 2. ...
Таврия 3. ...

Последний раз редактировалось CPU0; 07.02.2010 в 13:33..
 
Ответить с цитированием

  #6  
Старый 07.02.2010, 14:54
Аватар для dimash
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

ОК. Даю полностью вид таблицы.



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

Опережаю ваш вопрос. "первая таблица - это что? что с ней делать"
Это секции, когда ты нажимаешь на секцию политика, там выводятся последние три события партий.
 
Ответить с цитированием

  #7  
Старый 07.02.2010, 15:55
Аватар для -=Zhenek=-
-=Zhenek=-
Участник форума
Регистрация: 31.12.2007
Сообщений: 279
Провел на форуме:
1725509

Репутация: 114
Отправить сообщение для -=Zhenek=- с помощью ICQ
По умолчанию

PHP код:
$res mysql_query("SELECT * FROM t1");

 while(list(
$id,$title)=mysql_fetch_row($res)) { // В этом цикле получаем список секций
echo "$title";
 
$res_2 mysql_query("SELECT * FROM t2 WHERE id_sections ='$id'");
   while(list(
$id_s,$title_s)=mysql_fetch_row($res)) {  // в этом цикле список категорий для данной секции
  
echo "<a href>$title_s</a>";
   }
 
 } 
для вывода новостей тоже самое. Только для вывода 3 напиши LIMIT 3

Может это не самый рациональный вариант, но он позволит придать такой вид как хочет автор.
 
Ответить с цитированием

  #8  
Старый 07.02.2010, 16:54
Аватар для dimash
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

Цитата:
Сообщение от -=Zhenek=-  
PHP код:
$res mysql_query("SELECT * FROM t1");

 while(list(
$id,$title)=mysql_fetch_row($res)) { // В этом цикле получаем список секций
echo "$title";
 
$res_2 mysql_query("SELECT * FROM t2 WHERE id_sections ='$id'");
   while(list(
$id_s,$title_s)=mysql_fetch_row($res)) {  // в этом цикле список категорий для данной секции
  
echo "<a href>$title_s</a>";
   }
 
 } 
для вывода новостей тоже самое. Только для вывода 3 напиши LIMIT 3

Может это не самый рациональный вариант, но он позволит придать такой вид как хочет автор.
Читаем внимательно вопрос. Где написано что надо вывести категории и секции? Нигде не написано.

Повторюсь.
Цитата:
теперь что сделать нужно. простыми словами, без терминов
выбрать по три последних события для каждой команды
Вывести нужно через "Enter" по три последних события каждой команды.
 
Ответить с цитированием

  #9  
Старый 07.02.2010, 17:04
Аватар для -=Zhenek=-
-=Zhenek=-
Участник форума
Регистрация: 31.12.2007
Сообщений: 279
Провел на форуме:
1725509

Репутация: 114
Отправить сообщение для -=Zhenek=- с помощью ICQ
По умолчанию

Цитата:
Читаем внимательно вопрос.
Смотрим внимательно код.
Меняем названия табоиц и вуаля! Я тебе подал идею,а не реализацию т.к делай сам.
А с таким гонором я те вообще помогать не буду
 
Ответить с цитированием

  #10  
Старый 07.02.2010, 20:41
Аватар для dimash
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

Цитата:
Сообщение от -=Zhenek=-  
Смотрим внимательно код.
Меняем названия табоиц и вуаля! Я тебе подал идею,а не реализацию т.к делай сам.
А с таким гонором я те вообще помогать не буду
Я без гонора. Когда спрашивают определенный вопрос, то подразумевают ответ на него. Зачем ответ на то, что уже сделано. Вот так именно лучше, конечно, не помогать.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Delphi, .NET, Asm 6762 17.06.2010 21:23
Большой архив статей по раскрутке и оптимизации сайтов _-Ramos-_ Статьи 12 13.06.2010 23:56
Обзор Программ для Оформления\Украшения Windows BlackCats Soft - Windows 37 09.06.2010 01:21



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ