Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Открыть новую тему     Написать ответ в эту тему

roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Есть 3 таблицы:  
1) статьи, структура такая: id статьи, id категории, тайтл статьи, текст статьи
2) категорий названия, структура такая: id категории, название категории
3) таблица соответствий, структура: id отеческой категории, id вложенной категории
Получается так, что id категории из первой таблицы берется и далее, берется и если есть в 3ей таблице какое-то соответствие, формируется строчка сатегории чтобы получалось cat/subcat/subsubcat.... ну например взяли статью, id категории 5, в 3 таблице есть строчки, 4,5 и 3,4, значит статья находится в категории (по вложенности) 3/4/5, потом эти id заменяются на названия из 2 таблицы
Внимание, вопрос: как из этих 3 таблиц сделать одну такой структуры: id статьи, текст статьи, тайтл статьи с дописанной к нему через пробел в квадратных скобках иерархией категорий, в  
которых она находится, для того примера было бы "Title [a/b/c]", если у айдишников 3,4,5 были соответственно названия a,b,c?
Спасибо большое!))

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 23:02 16-01-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Рекурсивная работа с таблицами в одном запросе невозможна.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 08:49 17-01-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ясно, спасибо

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 23:21 18-01-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет, снова я
Как узнать максимальное количество пробелов в некотором поле?
Например если в поле:
ф
а ры р
вввв
и ы
Нужно достать 2 - количество пробелов во второй строке?
Спасибо!

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 13:06 26-01-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не припоминаю такой функции. Может, узнать кол-во пробелов так:
 
LENGTH(str) - LENGTH(REPLACE(str,' ',''))
 
Добавлено:
наверное так:
 
select (length(str) - length(replace(str,' ',''))) as prcnt from tablename order by prcnt desc limit 1;

Всего записей: 708 | Зарегистр. 08-09-2007 | Отправлено: 13:17 26-01-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jokerjar79, ок, сенкс, так и сделаю
 
 
Добавлено:
Привет! Как в одном запросе достать сумму рещультатов двух других, например, две таблицы
table1
1
2
2
4
table2
1
2
4
Надо узнать сумму select * from `table1` where `val`=2 + select * from `table2` where `val`=2
Спасибо!
 
Добавлено:
Сделал что-то такое...  
SELECT COUNT( * ) FROM `postlog` `pl` , `delay` `dl` WHERE `pl`.`title` = 'hello' OR `dl`.`title` = 'hello'
Что-то мне подсказывает, что это не лучший способ..

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 13:33 26-01-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Наверное надо делать через union, но, помойму, group by работает только в одном подзапросе

Всего записей: 708 | Зарегистр. 08-09-2007 | Отправлено: 06:06 28-01-2008
Ternik



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Brodyaga

Цитата:
Рекурсивная работа с таблицами в одном запросе невозможна.

возможна, средствами PHP.

Всего записей: 763 | Зарегистр. 25-09-2002 | Отправлено: 07:18 29-01-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ternik
Ещё раз перечитай процитированную тобой фразу.

Цитата:
в одном запросе


----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 17:05 29-01-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Как объединить таблицы?
Первая: поля а1, а2, а3
Вторая: поля а, б, в, г, д
Нужно сделать так, чтобы все содержимое первой таблицы отправилось (дописалось) во вторую, при этом а1=а, а2=б, а3=в, г, д - дефолтными значениями заполнить.
Спасибо!

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 17:21 30-01-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Походу сделал так INSERT INTO `tbl2` (`a`,`b`,`c`) SELECT `a1` as `a` ,`a2` as `b` ,`a3` as `c` FROM `tbl1` WHERE 1

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 13:31 01-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня вопрос - Есть 2 одинаковые таблицы (tabl1, tabbl2) с двумя столбцами (id,name)
Задача: получить все записи из tabl1 с такими id, которых нет в таблице tabl2, одним SQL запросом. Пожалуйста если можно чистый SQL запрос - спсб.
 
 
Добавлено:
Спасибо сам смог)):
SELECT id, name  
FROM ID AS a, Name AS ab
WHERE a.ID=ab.Name
ORDER BY ID;

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 12:59 05-02-2008
Weinaum



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня вопрос,  
как известно, изменить кодировку таблицы можно запросом типа  

Код:
ALTER TABLE `table_name` CONVERT TO CHARACTER SET cp1251 COLLATE cp1251_general_ci

А если таких таблиц 200?Или еще больше,и надо в каждой изменить кодировку?Насколько я понял,сделать это одним запросом нельзя.Но может все таки есть выход,программа какая или скрипт какой?Или по любому менять в каждой таблице отдельно?

Всего записей: 1864 | Зарегистр. 18-06-2006 | Отправлено: 22:03 07-02-2008
CheRt



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. собрать в массив результат SHOW TABLES
2. прогнать по циклу, меняя кодировку для каждого элемента
в чем проблема?

----------
В огне бода нет и не будет!
До встречи в СССР 2.0!

Всего записей: 1118 | Зарегистр. 14-12-2001 | Отправлено: 01:29 08-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я пока чайник, скажите пожалуйста в чем разница между DESC table1 И DESCRIBE table1 - если результат один и тотже?

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 18:21 08-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще вопросик пишу запрос:  
INSERT INTO DVDS
SET DVDName='Some like it Hot', YearRlsd=2002, MTypeID='mt12', StudID='s107',
RatingID='NR', FormID='f1', StatID='s2';
ERROR 1193 (HY000): Unknown system variable 'DVDName'
Почему?

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 17:30 09-02-2008
roddik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeus999
INSERT INTO `DVDS`
SET `DVDName`='Some like it Hot', `YearRlsd`=2002, `MTypeID`='mt12', `StudID`='s107',
`RatingID`='NR', `FormID`='f1', `StatID`='s2';

Всего записей: 233 | Зарегистр. 27-01-2007 | Отправлено: 18:02 09-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо большое roddik и почему в книжке написано, что надо без 'одинарок' непонятно. Вечно они все путают))

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 01:17 10-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeus999

Цитата:
Вечно они все путают))

смотря где и чем вводить.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:28 10-02-2008
Zeus999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UPDATE Orders
 SET Quantity=3,
 WHERE OrderID=1001;
 to use near 'WHERE OrderID=1001' at line 3
здесь я даже пробовал WHERE 'OrderID'='1001'; и WHERE 'OrderID'=1001;
все равно ошибка в этой строке

Всего записей: 28 | Зарегистр. 19-12-2007 | Отправлено: 11:24 10-02-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL Помогите составить запрос

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru