Этот SQL-запрос заставил меня задуматься о том, как это сделать.mysql query left join или group_concat или?
У меня есть следующая две MySQL таблица:
[items]
id
title
[ledger]
id
itemid
qty
stockcode
я выступаю избранный из таблицы [элементы], где ID = 123.I также хочет вернуть столбец «Extras» в который совпадает с items.id = ledger.itemid и представляет собой список кодов [регистров], разделенных запятыми, которые имеют SUM (qty)> 0. Сумма отражает, что элемент может иметь записи в реестре, показывающие количество +5 и -2 изображений = всего 3 изображения. 3 изображения будут отражены в столбце дополнительных функций как «изображение, изображение, изображение».
select
id
,title
,???? as extras
from
items
where
items.id = 123
Пример результат для столбца 'Extras' может быть:
bold,highlight,border,image,image,image
, которая отражает результат из таблицы лицевой с суммой (кол-во)> 0
bold (1)
highlight (1)
border (1)
image (3)
Я смотрел делать это таким образом, но был обеспокоен тем, что подзапрос на столе весь лицевом (который потенциально может быть огромным) может привести к в проблемах с производительностью по трассе? – regan
иногда вы просто должны делать то, что вам нужно. если производительность становится проблемой, тогда вы можете захотеть создать [материализованное представление] (http://en.wikipedia.org/wiki/Materialized_view) запроса GROUP_CONCAT и использовать это вместо –
. Я опубликовал еще один вопрос об использовании пользовательская переменная в подзапросе - не уверен, что что-то вдоль этих строк предоставит другое другое возможное решение (я их раньше не использовал, поэтому не знаю ограничений) - http://stackoverflow.com/questions/15823288/ а-MySQL-User-переменного-за-строки установленного – regan