Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Составить запрос. 2 таблицы. Группировка?

Здравствуйте.

Помогите решить такую задачу.
Посматривайте на рисунок для понимания.

Таблица 1(таблица 3 она же, продублировал для показа своей мысли). Содержит список элементов(обычные товары: заголовок, алиас, описание и т.п)

У этих товаров есть модели. Т.е. товар iphone 4 имеет модели iphone 4 8GB, iphone 4 16GB, iphone 4 32GB. И вот эти отношения хранятся в таблице 2, при чём по алиасам, а не id. Второй момент iphone 4 получается главным товаром и поле main=1, остальные айфоны main=0. Вот такая странная структура.

На данный момент все товары выводятся по порядку, т.е.:
iphone 4 (товар 1)
iphone 4 8GB (товар 2)
iphone 4 16GB (товар 3)
iphone 4 32GB (товар 4)
iphone 5 (товар 5)
...
и так далее, по 10 на страницу.
А теперь задача. Нужно составить запрос, чтобы получить поля с группировкой как на последней таблице. Как это я представляю нарисовал, но не представляю как это сделать и верно ли я вообще мыслю.

Объясню зачем. Чтобы товары выводились.
iphone 4 (товар 1)
- iphone 4 8GB
- iphone 4 16GB
- iphone 4 32GB
iphone 5 (товар 2)
...
и так НУЖНО, по 10 на страницу.
Ответ: Отчеты обычно оформляются в клиентской части, а сервером готовятся только черновые данные
Да и схема не айс...
Но как вариант (под настроение%)...
Код MySQL
1
2
3
4
5
6
7
8
9
10
11
12
select if(id1 is null,t.title,'')fld1, if(id1 is null,'',t.title)fld2
from(
  select id2, id1
    from tab2
    where main=1
  union all
  select distinct id2, null id1
    from tab2
    where main=1
  ) u
join tab1 t on t.alias=ifnull(u.id1,u.id2)
order by u.id2,u.id1;
Вопрос: Помогите составить запрос (JOIN, MAX и Groupe By)

Добрый день.
Помогите, пожалуйста, составить запрос для MySQL.
Есть 2 таблицы: mat и mat_documents

Нужно отобразить максимальный номер документа (с данными всей строки) в разрезе групп материалов (mat.groupe).
Более понятно я максимально набросал в примере в приложении к сообщению.

Практически удалось сформировать запрос:

SELECT max(b.docnu), a.title, a.groupe,b.amount FROM mat_documents a
RIGHT JOIN mat d ON a.id_mat=b.id_mat
GROUP BY a.groupe

Проблема у меня осталась в том, что в моём запросе выбирается только максимальный номер документа, а для остальных данных строки нельзя применить max (например, title). Моя задача должна решаться как-то изящнее, но никак не получается... помогите :)

Заранее спасибо!

P.S. Все подробности в файле.

К сообщению приложен файл (Книга1.xlsx - 9Kb)
Ответ:
tanglir
plosion87
Ребят, составил запрос по предложенному шаблону
где в шаблоне внешний групбай? где у вас условие связи по двум полям?


Я же приложил пример, в моей задаче исходные данные такие, что шаблонный пример пришлось модифицировать, поэтому отвечая на Ваши вопросы:
1)Нужна группировка по полю группы материалов, которая есть только в таблице mat, поэтому пришлось использовать помимо внутренней, ещё и внешнюю группировку.
2)По поводу условия связи его тоже нету, т.к. поле MAX(t2.field2) AS field2 - есть только в одной таблице mat_documents, поэтому с чем его связывать не очень понятно.
Вопрос: Связанные таблицы

Мне приходят несколько файлов csv/ xlsx. Каждый файл - будущая таблица в бд.
В файлах нет первичных ключей.
Создаю в access связанные таблицы. Они получаются без первичных ключей.
У всех таблиц(файлов) есть общее поле(текстовое).
По этому полю можно связать таблицы.
Как это сделать?
Ответ:
Сообщение от saikle
Создаю в access связанные таблицы.
Присоединенные таблицы можно связать в схеме данных, без обеспечения целостности, естественно, в запросах. Но обычно такие присоединенные таблицы используются для добавления новых данных в таблицы Аксесса, в которых уже есть ключи. И основная работа уже с этими таблицами.
Вопрос: Помогите составить запрос выбрать n предыдущих строк с учётом ORDER BY

Уважаемые форумчане, помогите составить запрос.
Есть некоторый запрос типа SELECT * FROM table ORDER BY field.
В table есть колонка id.
Задано некоторое конкретное id( пусть равное 8)
нужно взять несколько строк из результата запроса, стоящих перед id=8.
field может быть составным, потому использовать его во WHERE нежелательно
Ответ:
RenusAvin
Уважаемые форумчане, помогите составить запрос.
Есть некоторый запрос типа SELECT * FROM table ORDER BY field.
В table есть колонка id.
Задано некоторое конкретное id( пусть равное 8)
нужно взять несколько строк из результата запроса, стоящих перед id=8.
field может быть составным, потому использовать его во WHERE нежелательно



приведите конкретный пример.
то у вас по ИД надо сортировать, то по какомутп "филду"
Вопрос: INSERT в связанную таблицу

Добрый день. Есть таблица Table1
id
user_id
tets_1
test_2

И таблица users
user_id
name

Таблицы связаны один (user) ко многим (Table1).
Вопрос такой: как можно составить запрос на добавление записи в Table1 зная имя пользователя?
PS: в моей таблице около 5 связей.
Ответ:
SQL
1
INSERT INTO Table1(..., user_id) VALUES(..., (SELECT user_id FROM users WHERE name = 'User Name'))
Подразумевается, что users.name -- уникальное поле и запрос по имени всегда вернет одну запись из users. Если это не так, то ваша задача некорректна.
Вопрос: Удаление из связанных таблиц

Уважаемые коллеги, прошу помощи в удалении из связанных таблиц.
Есть три таблицы: товаров, картинок и таблица связки между ними. Все таблицы типа InnoDB.
Когда пользователь пытается удалить товар необходимо удалить и все с ним связанные картинки а так-же связи товар-картинка.
Естественно можно это выполнить тремя запросами... но это некрасиво. Хочется сделать один DELETE чтобы он удалит связи, затем товар и картинки ему принадлежащие.
Экспериментировал с DELETE весь день... упарился, задачу не решил.
Вернее, можно сделать такой вот запрос:
DELETE pi, p, i
FROM product_image pi 
  LEFT JOIN product p ON (pi.prod_id=p.prod_id)
  LEFT JOIN image i ON (i.img_id=pi.img_id) 
WHERE (pi.prod_id=1);

и он удалит из для первого товара как саму карточку, так и картинки, а так-же связи между ними. Вот только если у товара нет картинок - тогда он ничего не удалит, а хотелось бы карточку товара всё-же удалять. Казалось бы в условии WHERE вместо pi.prod_id следует указать p.prod_id и тогда выборка будет относительно таблицы товаров - но нет, MySQL этого не допускает. Пишет:
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint
fails (`ozon`.`product_image`, CONSTRAINT `fk_product_has_image_product1` FOREIGN KEY (`prod_id`) REFERENCES `product` (`prod_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 0.000 sec
Если перестроить запрос вокруг таблицы товаров:
DELETE pi, i, p
FROM product p
  LEFT JOIN product_image pi ON (pi.prod_id=p.prod_id)
  LEFT JOIN image i ON (i.img_id=pi.img_id)
WHERE (p.prod_id=1);

то MySQL пишет ровно то же самое:
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint
fails (`ozon`.`product_image`, CONSTRAINT `fk_product_has_image_product1` FOREIGN KEY (`prod_id`) REFERENCES `product` (`prod_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 0.000 sec
Пробовал тот же порядок таблиц как и в первом запросе с WHERE из второго но с RIGTH join'ом:
DELETE pi, p, i
FROM product_image pi
  RIGHT JOIN product p ON (pi.prod_id=p.prod_id)
  LEFT JOIN image i ON (i.img_id=pi.img_id)
WHERE (p.prod_id=1);

результат не оригинален:
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint
fails (`ozon`.`product_image`, CONSTRAINT `fk_product_has_image_product1` FOREIGN KEY (`prod_id`) REFERENCES `product` (`prod_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 0.000 sec

В общем, тут я загрустил... и начал уже подумывать - ну её эту крастоту, может таки - хряпнуть на два DELETE
DELETE pi, i FROM product_image pi LEFT JOIN image i ON (i.img_id=pi.img_id)  WHERE (pi.prod_id=1);
DELETE FROM product WHERE prod_id=1;

Но предполагаю, что "прожёные базисты" меня сейчас заклюют.

Если у кого есть предположения как выйти из тупика - буду рад.
Пробовал
DELETE IGNORE .. 
и
DELETE LOW_PRIORITY .. 

но например вариация третьего запроса с IGNORE - работает, но странно - удаляет картинки и связки, а карточку товара оставляет.

В общем - идеи закончились.

Если кому будет интересно, побороться с задачей, вот подробности:
Server version:         5.5.25 MySQL Community Server (GPL)
Схема данных во вложении к посту, а исходный код:
CREATE TABLE image (
  img_id int(11) NOT NULL AUTO_INCREMENT,
  src varchar(255) DEFAULT NULL,
  mime varchar(100) DEFAULT NULL,
  `type` varchar(45) DEFAULT NULL,
  PRIMARY KEY (img_id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO image (img_id, src, mime, `type`) VALUES(4, 'file.xls', 'application/vnd.ms-excel', 'application');
INSERT INTO image (img_id, src, mime, `type`) VALUES(5, '#2817_moneyList.jpg', 'image/jpeg', 'image');
INSERT INTO image (img_id, src, mime, `type`) VALUES(6, '#2816_confirm.png', 'image/png', 'image');
INSERT INTO image (img_id, src, mime, `type`) VALUES(7, '#2816_confirm1.png', 'image/png', 'image');
INSERT INTO image (img_id, src, mime, `type`) VALUES(8, '#2816_confirm2.png', 'image/png', 'image');
INSERT INTO image (img_id, src, mime, `type`) VALUES(9, 'TU2_1.GIF', 'image/gif', 'image');
INSERT INTO image (img_id, src, mime, `type`) VALUES(10, 'Фрагмент1.frw', 'application/octet-stream', 'application');
INSERT INTO image (img_id, src, mime, `type`) VALUES(11, '#2816_confirm2.1.jpg', 'image/jpeg', 'image');

CREATE TABLE product (
  prod_id int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  content longtext,
  PRIMARY KEY (prod_id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO product (prod_id, `name`, content) VALUES(1, 'календари', 'Бла-бла');
INSERT INTO product (prod_id, `name`, content) VALUES(2, 'визитки', 'бла-бла2');
INSERT INTO product (prod_id, `name`, content) VALUES(3, 'визитки', 'бла-бла2');
INSERT INTO product (prod_id, `name`, content) VALUES(4, 'визитки', 'бла-бла2');
INSERT INTO product (prod_id, `name`, content) VALUES(5, 'визитки', 'бла-бла2');
INSERT INTO product (prod_id, `name`, content) VALUES(6, 'визитки', 'бла-бла2');
INSERT INTO product (prod_id, `name`, content) VALUES(9, 'trans-test3', NULL);

CREATE TABLE product_image (
  prod_id int(11) NOT NULL,
  img_id int(11) NOT NULL,
  sort float DEFAULT NULL,
  PRIMARY KEY (prod_id,img_id),
  KEY fk_product_has_image_image1_idx (img_id),
  KEY fk_product_has_image_product1_idx (prod_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 4, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 5, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 6, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 7, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 8, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 9, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 10, 0);
INSERT INTO product_image (prod_id, img_id, sort) VALUES(1, 11, 0);

ALTER TABLE `product_image`
  ADD CONSTRAINT fk_product_has_image_product1 FOREIGN KEY (prod_id) REFERENCES product (prod_id) ON DELETE NO ACTION ON UPDATE NO ACTION;


К сообщению приложен файл. Размер - 120Kb
Ответ: Попробовал с другими таблицами. Вдруг я с CONSTRAINT'ами накосячил... создал таблицу c (категория), таблицу t (товар) и связал их таблицей c_t

в товарах есть строчка t_id=7 вне категорий, для t_id=6 напротив - две категории (в остальных по одной) В общем запрос:
select c.*, c_t.*, t.* FROM t LEFT JOIN c_t ON (t.t_id=c_t.t_id) LEFT JOIN c ON (c_t.c_id=c.c_id);

приводит к ответу:
c_id, cname, c_id, t_id, t_id, tname
'1', 'name1', '1', '1', '1', 'name1'
'2', 'name2', '2', '2', '2', 'name2'
'3', 'name3', '3', '3', '3', 'name3'
'4', 'name4', '4', '4', '4', 'name4'
'5', 'name5', '5', '5', '5', 'name5'
'6', 'name6', '6', '6', '6', 'name6'
'7', 'name7', '7', '6', '6', 'name6'
NULL, NULL, NULL, NULL, '7', '7-- name'

Стоит выполнить удаление товара без категорий:
start transaction;
delete  c_t, c, t from t LEFT JOIN c_t ON (c_t.t_id=t.t_id) LEFT JOIN c ON (c.c_id=c_t.c_id) where t.t_id=7;
select c.*, c_t.*, t.* FROM t LEFT JOIN c_t ON (t.t_id=c_t.t_id) LEFT JOIN c ON (c_t.c_id=c.c_id);
rollback;


Последняя строка удаляется:
c_id, cname, c_id, t_id, t_id, tname
'1', 'name1', '1', '1', '1', 'name1'
'2', 'name2', '2', '2', '2', 'name2'
'3', 'name3', '3', '3', '3', 'name3'
'4', 'name4', '4', '4', '4', 'name4'
'5', 'name5', '5', '5', '5', 'name5'
'6', 'name6', '6', '6', '6', 'name6'
'7', 'name7', '7', '6', '6', 'name6'

а вот тот же DELETE ... where t.t_id=6 возвращает ошибку
автор
23:05:58 delete c_t, c, t from t LEFT JOIN c_t ON (c_t.t_id=t.t_id) LEFT JOIN c ON (c.c_id=c_t.c_id) where t.t_id=6 Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`ozon`.`c_t`, CONSTRAINT `fk_c_has_t_t1` FOREIGN KEY (`t_id`) REFERENCES `t` (`t_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 0.000 sec


Код этого примера:
CREATE TABLE c (
  c_id int(11) NOT NULL AUTO_INCREMENT,
  cname varchar(45) DEFAULT NULL,
  PRIMARY KEY (c_id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO c (c_id, cname) VALUES(1, 'name1');
INSERT INTO c (c_id, cname) VALUES(2, 'name2');
INSERT INTO c (c_id, cname) VALUES(3, 'name3');
INSERT INTO c (c_id, cname) VALUES(4, 'name4');
INSERT INTO c (c_id, cname) VALUES(5, 'name5');
INSERT INTO c (c_id, cname) VALUES(6, 'name6');
INSERT INTO c (c_id, cname) VALUES(7, 'name7');

CREATE TABLE c_t (
  c_id int(11) NOT NULL,
  t_id int(11) NOT NULL,
  PRIMARY KEY (c_id,t_id),
  KEY fk_t_idx (t_id),
  KEY fk_c_idx (c_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO c_t (c_id, t_id) VALUES(1, 1);
INSERT INTO c_t (c_id, t_id) VALUES(2, 2);
INSERT INTO c_t (c_id, t_id) VALUES(3, 3);
INSERT INTO c_t (c_id, t_id) VALUES(4, 4);
INSERT INTO c_t (c_id, t_id) VALUES(5, 5);
INSERT INTO c_t (c_id, t_id) VALUES(6, 6);
INSERT INTO c_t (c_id, t_id) VALUES(7, 6);

CREATE TABLE t (
  t_id int(11) NOT NULL AUTO_INCREMENT,
  tname varchar(45) DEFAULT NULL,
  PRIMARY KEY (t_id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO t (t_id, tname) VALUES(1, 'name1');
INSERT INTO t (t_id, tname) VALUES(2, 'name2');
INSERT INTO t (t_id, tname) VALUES(3, 'name3');
INSERT INTO t (t_id, tname) VALUES(4, 'name4');
INSERT INTO t (t_id, tname) VALUES(5, 'name5');
INSERT INTO t (t_id, tname) VALUES(6, 'name6');
INSERT INTO t (t_id, tname) VALUES(7, '7-- name');


ALTER TABLE `c_t`
  ADD CONSTRAINT fk_c FOREIGN KEY (c_id) REFERENCES `c` (c_id) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT fk_c_has_t_t1 FOREIGN KEY (t_id) REFERENCES `t` (t_id) ON DELETE NO ACTION ON UPDATE NO ACTION;


схема, для визуального представление во вложении

К сообщению приложен файл. Размер - 18Kb
Вопрос: Не пойму как правильно составить запрос

Нужна Ваша помощь!!!

Нужно выполнить следующие действия:

1. Составить запрос (с помощью конструктора запросов), выдающий сведения о заказах, срок оплаты, которых на текущую дату истек, но они еще не оплачены. В запросе также должна содержаться информация о клиенте, сделавшем этот заказ (фамилия, пол, адрес, телефон).
2. Запрос сохранить под именем Неоплаченные заказы, а результаты запроса сохранить в форме таблицы с именем Срок оплаты - сегодня.

Запрос вроде составил и он работает, а вот сохранить результат в таблице ну никак не получается.

P.S. База сделана в Access 2007. Сама база во вложении.

Заранее всем благодарен за любую помощь.
Ответ: HERETIC, Ну не знаю) Скачал Вашу базу, открыл, посмотрел на запрос, в нем все вроде бы правильно, запустил его на выполнение - и создалась таблица "Срок оплаты сегодня". Все как и должно быть. Не знаю, почему у вас она не отображается... У вас же запрос на создание таблицы, правильно? Вот он ее и создает, если его запустить на выполнение.
Вопрос: Помогите составить запрос с исключениями

Добрый день.

Помогите составить запрос, если это возможно.

Есть таблица (справочник с шаблонами номеров):

provider | template
----------------------
p1 | 8
----------------------
p1 | 823
----------------------
p2 | 82
----------------------
p2 | 8234


Есть рабочая таблица (номера телефонов):

numb
--------
821111
822222
823333
823444

Необходимо составить запрос, который вернет из таблицы numb все телефоны, соответствующие оператору p1, но не подпадающие под номера оператора p2.
Заранее спасибо.
Ответ:
court
fix
court
так будет на порядок лучше
;with cte as (
	select 
		b.template 
		,b.provider
	from [Есть таблица (справочник с шаблонами номеров)] b
	where	not exists(select 1 from [Есть таблица (справочник с шаблонами номеров)] b1 where b1.template like b.template+'%')
)
select a.* 
from [Есть рабочая таблица (номера телефонов)] a 
inner join cte on a.numb like cte.template+'%'
where cte.provider = 'p1'


Первый пример (с сортировкой ASC) рабочий судя по тестам, сейчас попробую этот.
Вопрос: Запрос к связанным таблицам

Здравствуйте.

Ситуация:

Есть 2 связанные таблицы


при запросе (SELECT * FROM tovar) выводятся результаты :



на веб странице, при запросе, выводится то же: id: 1, name: vodka, country: 1

но если установить флаг "Relational display field" в PHPMyAdmin,



то при том же запросе (SELECT * FROM tovar) отображается так:



Вопрос:

Что нужно добавить к запросу (SELECT * FROM tovar), чтоб на сайте отображалась информация как при включенном "Relational display field":
id:1, name: vodka, country: Russia?
Ответ: Возникла новая проблема, может кто поможет

При создании представления, мне нужно что бы
из таблиц
Categ (id, categ)
и
Content (id, perent_categ, categ)

сделать viewContent

Пишу так

SQL
1
2
3
4
5
6
7
8
CREATE VIEW viewContent
 
AS SELECT co.`id`, ct.`perent_categ`, ct.`categ` 
 
FROM `Content` co, `Categ` ct
 
WHERE  ct.`id` = co.`perent_categ`
AND      ct.`id` = co.`categ`;
не работает

пробовал ещё так

SQL
1
2
3
4
5
6
7
8
CREATE VIEW viewContent
 
AS SELECT co.`id`, ct.`perent_categ`, cg.`categ` 
 
FROM `Content` co, `Categ` ct, `Categ` cg
 
WHERE  ct.`id` = co.`perent_categ`
AND      cg.`id` = co.`categ`;
результат тот же.

Конечно могу создать ещё два одинаковых представления для Categ (id, categ) с разными именами и уже из них разбрасывать, но мне кажется это извращением

Добавлено через 3 часа 29 минут
Решил задачу таким образом, может кому пригодится.

Для таблицы Categ у которой два поля (id,categ)
Создал представление viewCateg с полями (id,perent_categ)

А из этих двух таблиц, создал представление viewContent с (id, perent_categ, categ, ..., ...)

Поскольку понятие категории едино для всего сайта (тоесть список один), а для страницы нужно указывать как категорию данной страницы так и родительскую. Ну и конечно же, что бы редактировать список категорий единожды без ошибок и дублирования, без писанины лишних перепроверялок и сравнивалок таблиц.
Теперь что бы выполнить изменение в двух таблицах достаточно изменить/добавить/удалить строку в таблице Categ
Вопрос: Как правильно составить запрос

Есть три таблицы:

MySQL
1
2
3
4
5
6
select * from jobs;
+--------+----------+------------------+-------------+-------------+--------------+--------+------------+----------+
| num_dt | num_sort | status_dt        | exchange_dt | name_dt     | group_obj_id | obj_id | date_dt    | time_dt  |
+--------+----------+------------------+-------------+-------------+--------------+--------+------------+----------+
|      2 |        1 | работает         |           0 | delete_site |            2 |      4 | 2016-09-14 | 01:10:30 |
+--------+----------+------------------+-------------+-------------+--------------+--------+------------+----------+
MySQL
1
2
3
4
5
6
7
8
select * from group_obj;
+--------+----------------+----------+
| num_dt | name_dt        | table_dt |
+--------+----------------+----------+
|      1 | Сервера        | servers  |
|      2 | Домены         | domains  |
|      3 | Темы           | thems    |
+--------+----------------+----------+
MySQL
1
2
3
4
5
6
7
select * from domains;
+--------+------------+-----------+
| num_dt | name_dt    | server_id |
+--------+------------+-----------+
|      4 | ramfish.ru |        13 |
|      5 | site-1.ru  |        14 |
+--------+------------+-----------+
Мне нужно выбрать сайт ramfish.ru из таблицы domains в подзапросе.
Основной запрос идет в таблицу jobs, потом по полю из этой таблицы group_obj_id в подзапросе получаем поле table_dt (у которого значение domains) и это значение domains послужит значением таблицы для подзапроса который вернет уже поле name_dt (у которого значение ramfish.ru)

Вот я сделал запрос:
select SQL_CALC_FOUND_ROWS num_dt as num_line, (select name_dt from (select table_dt from group_obj where num_dt=t.group_obj_id limit 1) as t1 where num_dt=t.obj_id limit 1) as obj_dt from jobs as t order by num_dt LIMIT 0, 100
но он не работает, выдает Column not found: 1054 Unknown column 't.group_obj_id' in 'where clause''

Помогите пожалуйста правильно составить запрос.
Ответ: )))
Пробую сделать хранимую функцию:
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DELIMITER $$
CREATE
    FUNCTION `baza`.`object`(group_obj_id INT, obj_id INT) RETURNS VARCHAR(100)
    BEGIN
    DECLARE result VARCHAR(100);
    DECLARE obj_table VARCHAR(100);
    DECLARE query_string VARCHAR(300);
    SELECT table_dt INTO obj_table FROM group_obj WHERE num_dt=group_obj_id;
    SET @query_string := CONCAT('SELECT name_dt INTO result FROM ', obj_table, ' WHERE num_dt=obj_id');
    PREPARE dinamic_query FROM @query_string;
    EXECUTE dinamic_query;
    DEALLOCATE PREPARE dinamic_query;
    RETURN(result);
    END$$
DELIMITER ;
чтоб потом её просто использовать в запросе, но опять же динамические запросы не разрешает делать: "Dynamic SQL is not allowed in stored function or trigger"