У меня есть запрос MySQL (я использую phpmyadmin), и я знаю, что таблицу не следует создавать таким образом, но у меня должна быть только одна таблица для проекта, над которым я работал. Это мой запрос sql.MySql Таблица, как получить все контакты?
CREATE VIEW v_sugarcrm AS
SELECT AC.id, A.id AS account_id, A.name, A.description, A.industry, A.phone_fax, A.phone_office, A.shipping_address_street, A.shipping_address_city, A.shipping_address_state, A.shipping_address_postalcode, A.shipping_address_country, C.id AS contact_id, C.first_name, SUBSTRING_INDEX(C.last_name, ' ', -1) as last_name,concat(c.first_name, ' ', c.last_name) as full_name, SUBSTRING_INDEX(SUBSTRING_INDEX(concat(c.first_name, ' ', c.last_name), ' ', 2), ' ', -1) as middle_name, C.title, C.department, C.phone_home, C.phone_mobile, C.phone_work, C.primary_address_street, C.primary_address_city, C.primary_address_state, C.primary_address_postalcode, C.primary_address_country, C.deleted, EA.email_address as email_account,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(EA_C1.email_address), ',', 1), ',', -1) as email_2,
If(length(GROUP_CONCAT(EA_C1.email_address)) - length(replace(GROUP_CONCAT(EA_C1.email_address), ',', ''))>=1,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(EA_C1.email_address), ',', 2), ',', -1), NULL) as email_3,
If(length(GROUP_CONCAT(EA_C1.email_address)) - length(replace(GROUP_CONCAT(EA_C1.email_address), ',', ''))>=2,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(EA_C1.email_address), ',', 3), ',', -1), NULL) as email_4,
If(length(GROUP_CONCAT(EA_C1.email_address)) - length(replace(GROUP_CONCAT(EA_C1.email_address), ',', ''))>=3,
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(EA_C1.email_address), ',', 4), ',', -1), NULL) as email_5,
EA_C.email_address as email_contact,
GROUP_CONCAT(EA_C1.email_address) as alt_email_contact
FROM ACCOUNTS A
INNER JOIN ACCOUNTS_CONTACTS AS AC ON A.id = AC.account_id
INNER JOIN CONTACTS AS C ON C.id = AC.contact_id
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER ON ER.bean_id = A.id
AND ER.bean_module = "Accounts" AND ER.primary_address =1
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER_C ON ER_C.bean_id = C.id
AND ER_C.bean_module = "Contacts" AND ER_C.primary_address = 1
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER_C1 ON ER_C1.bean_id = C.id and ER_C1.deleted !=1
AND ER_C1.primary_address !=1
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER_A1 ON ER_A1.bean_id = A.id AND ER_A1.deleted !=1
and ER_A1.primary_address !=1
LEFT JOIN EMAIL_ADDRESSES AS EA ON ER.email_address_id = EA.id
LEFT JOIN EMAIL_ADDRESSES AS EA_C ON ER_C.email_address_id = EA_C.id
LEFT JOIN EMAIL_ADDRESSES AS EA_C1 ON ER_C1.email_address_id = EA_C1.id
AND EA_C1.invalid_email !=1 AND EA_C1.opt_out !=1
LEFT JOIN EMAIL_ADDRESSES AS EA_A1 ON ER_A1.email_address_id = EA_A1.id
AND EA_A1.invalid_email !=1 AND EA_A1.opt_out !=1
GROUP BY A.ID
Account_Contacts стол http://i.stack.imgur.com/KUECA.png
Моя главная проблема вращается вокруг двух внутренних соединений у меня есть в верхней части запроса На данный момент этот запрос дает мне всю информацию, мне нужно как для контакта и компания, однако, когда есть несколько контактов, связанных с одной компанией, она отображает только один контакт, а не тот и другой. Я хотел бы знать, как я могу изменить свой запрос, чтобы он отображал все контакты, даже если информация для компании одинакова, информация для контакта должна отличаться, и у них также должны быть разные идентификаторы.
Мне очень нужна помощь!
Существует более одного стола. – Uueerdo
Да, есть несколько, но моя главная проблема связана со счетами, контактами и account_contacts. Я вставлю изображение столов один момент. – ChewyMasta
Таблица счетов: http: //i.stack.imgur.com/rK2lN.png – ChewyMasta