Вопрос по MySql

1 234
ArbNet
На сайте с 27.10.2019
Offline
131
#31

Sly32, Реально ребёнок :) вы мне тут не помогаете, а только дерзите, жизни типа учите, что мне делать, куда идти, к кому обратится и тд. А я вам тут свои разработки на тарелочке с каёмочкой должен выложить.

Прям наивный капиталистический отпрыск :)

ArbNet
На сайте с 27.10.2019
Offline
131
#32

Сложная выборка из разных таблиц

SELECT _.id, _name.vl AS 'name', _des.vl AS 'des', _lnk.vl AS 'lnk', _vis.vl AS 'vis' FROM `_records` AS _
JOIN `word` AS _name ON (_name.id=JSON_VALUE(_.vid,'$[0]'))
JOIN `string` AS _des ON (_des.id=JSON_VALUE(_.vid,'$[1]'))
JOIN `string` AS _lnk ON (_lnk.id=JSON_VALUE(_.vid,'$[2]'))
JOIN `logical` AS _vis ON (_vis.id=JSON_VALUE(_.vid,'$[3]'))
WHERE _.ess='Menu' AND _vis._vl.vl=1

Нужно добавить записи если в выбранных записях _lnk.vl значение начинается с знака =

то есть _lnk.vl LIKE '=%'

для одной таблицы делал c подзапросом так

SELECT `id`,`key`,`des`,`lnk` FROM `menu` WHERE 
        (`key` in (SELECT Test(`lnk`) FROM `menu` WHERE `lnk` LIKE '=%' AND `key`='$nam' AND `vis`=1) OR `key`='$nam') AND `vis`=1


tommy-gung
На сайте с 22.11.2006
Offline
295
#33

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


ну и не думаю, что кто-то ответил без структуры таблиц

Здесь не могла быть ваша реклама
ArbNet
На сайте с 27.10.2019
Offline
131
#34
tommy-gung #:
по-моему хреновый вариант джоинить поля без индексов

Там индексы есть.

(_name.id=JSON_VALUE(_.vid,'$[0]'))
(_des.id=JSON_VALUE(_.vid,'$[1]'))
(_lnk.id=JSON_VALUE(_.vid,'$[2]'))
(_vis.id=JSON_VALUE(_.vid,'$[3]')

Берётся JSON объект в таблице `_records` AS _

и потом по индексам идёт отбор данных в разных таблицах

Сортировку вот потом сложновато оказалось сделать(по LIKE '=%' к примеру), отказался от такого решения, сделал по другому :)

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий