Просмотр полной версии : Очень простой запрос, но как?)
Есть таблица 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
тебе придется склеивать результат в строку и потом парсить
и нисколько это не простой запрос!
у тебя какая БД?
тебе придется склеивать результат в строку и потом парсить
и нисколько это не простой запрос!
MySQL.
-=Zhenek=-
07.02.2010, 13:17
В таблице t2 есть указание на то что эта запись относится к таблице t1 ?
пример t1
id name
1 Бавария
2 Швецария
t2
id name parent
1 ббла 1
2 олол 2
если есть,то запрос,цикл и все дела
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. ...
ОК. Даю полностью вид таблицы.
http://webdeveloper.net.ua/table.jpg
теперь что сделать нужно. простыми словами, без терминов
выбрать по три последних события для каждой команды
Опережаю ваш вопрос. "первая таблица - это что? что с ней делать"
Это секции, когда ты нажимаешь на секцию политика, там выводятся последние три события партий.
-=Zhenek=-
07.02.2010, 15:55
$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
Может это не самый рациональный вариант, но он позволит придать такой вид как хочет автор.
$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
Читаем внимательно вопрос.
Смотрим внимательно код.
Меняем названия табоиц и вуаля! Я тебе подал идею,а не реализацию т.к делай сам.
А с таким гонором я те вообще помогать не буду
Смотрим внимательно код.
Меняем названия табоиц и вуаля! Я тебе подал идею,а не реализацию т.к делай сам.
А с таким гонором я те вообще помогать не буду
Я без гонора. Когда спрашивают определенный вопрос, то подразумевают ответ на него. Зачем ответ на то, что уже сделано. Вот так именно лучше, конечно, не помогать.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot