Привет, у меня есть возможность найти решение.Комплексный SQL-запрос :: отображение данных inline из таблиц с умножением
У меня есть 3 таблицы:
- клиентов
- customer_id
- customer_name
- связь
- subscription_id
- customer_id
- подписка
Один клиент может иметь отношения со многими подписками и я хочу, чтобы отобразить данные следующим образом:
customer_id, customer_name, subscription_first, subscription_second, subscription_n
... все в одной строке.
Может ли кто-нибудь мне помочь:?
Хорошо, прежде всего, спасибо за помощь :)
я сделал что-то вроде этого, и его работы :)
SELECT `main_table`.*, `customer_lastname_table`.`value` AS `customer_lastname`, `customer_firstname_table`.`value` AS `customer_firstname`, IF(main_table.customer_id = 0, 1, 2) AS `type`, `store`.`group_id`, `store`.`website_id`, `subscription_table_one`.`subscription_code`, `subscription_table_two`.`subscription_code` FROM `newsletter_subscriber` AS `main_table`
LEFT JOIN `customer_entity_varchar` AS `customer_lastname_table` ON customer_lastname_table.entity_id=main_table.customer_id
AND customer_lastname_table.attribute_id = 7
LEFT JOIN `customer_entity_varchar` AS `customer_firstname_table` ON customer_firstname_table.entity_id=main_table.customer_id
AND customer_firstname_table.attribute_id = 5
INNER JOIN `core_store` AS `store` ON store.store_id = main_table.store_id
LEFT JOIN `b_newsletter_relations` AS `relation_table` ON relation_table.customer_id=main_table.customer_id
LEFT JOIN `b_newsletter_subscriptions` AS `subscription_table_one` ON subscription_table_one.subscription_id=relation_table.subscription_id
LEFT JOIN `b_newsletter_subscriptions` AS `subscription_table_two` ON subscription_table_one.subscription_id=relation_table.subscription_id
GROUP BY `customer_id`
ааа, и еще одна вещь, это динамический с помощью PHP.
Как вы узнаете, что является подписью 1-го/2-го/3-го/и т.д.? Существует ли ограничение для каждого клиента, иначе это должно быть динамичным, чтобы разместить клиента с наибольшим количеством подписчиков ... –