Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Очень простой запрос, но как?) (https://forum.antichat.xyz/showthread.php?t=176859)

dimash 07.02.2010 03:49

Очень простой запрос, но как?)
 
Есть таблица t1. В ней записи
Код:

Динамо
Шахтар
Таврия
Металлург Донецк
Оболонь

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

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

В итоге картина:
Код:

Динамо
1. ...
2. ...
3. ...
Шахтар
1. ...
2. ...
3. ...
Таврия
1. ...
2. ...
3. ...


imajo.ati 07.02.2010 07:41

у тебя какая БД?
Цитата:

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

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

dimash 07.02.2010 12:31

Цитата:

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

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

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

MySQL.

-=Zhenek=- 07.02.2010 13:17

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

пример t1

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


t2

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

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

CPU0 07.02.2010 13:28

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. ...

dimash 07.02.2010 14:54

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

http://webdeveloper.net.ua/table.jpg

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

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

-=Zhenek=- 07.02.2010 15:55

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

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

dimash 07.02.2010 16:54

Цитата:

Сообщение от -=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" по три последних события каждой команды.

-=Zhenek=- 07.02.2010 17:04

Цитата:

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

dimash 07.02.2010 20:41

Цитата:

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

Я без гонора. Когда спрашивают определенный вопрос, то подразумевают ответ на него. Зачем ответ на то, что уже сделано. Вот так именно лучше, конечно, не помогать.


Время: 03:27