2016-11-21 2 views
1

Мне нужно загрузить пользователей Joomla и данные профиля пользователя в таблицу excel. Я использую компоненты Joomla «VJ SQL to File», которые требуют ввода SQL-запроса. Теперь проблема начинается. я поступил следующий запрос:Как сбросить пользователей joomla и профиль пользователя, чтобы правильно перенести

select 
vpa1_user_profiles.user_id, 
vpa1_user_profiles.profile_key,   
vpa1_user_profiles.profile_value, 
vpa1_users.name, 
vpa1_users.username, 
vpa1_users.email 
from 
vpa1_users 
inner join vpa1_user_profiles 
on 
vpa1_users.id = vpa1_user_profiles.user_id 

И результат, как показано ниже:

user_id profile_key profile_value   name username  email 
4256 profile.dob "1999-12-31 23:00:00" Test Testuser1234 abcdefg.hi 
4256 profile.modnr "09080706"   Test Testuser1234 abcdefg.hi 
4256 profile.nr  "22"     Test Testuser1234 abcdefg.hi 
4256 profile.ort "Pfefferland"   Test Testuser1234 abcdefg.hi 
4256 profile.plz "9876"     Test Testuser1234 abcdefg.hi 
4256 profile.str "Landstr."   Test Testuser1234 abcdefg.hi 
4256 profile.telnr "01020304"   Test Testuser1234 abcdefg.hi 
4256 profile.username "Test"   Test Testuser1234 abcdefg.hi 
4256 profile.uservor "User"   Test Testuser1234 abcdefg.hi 

3 правильных конечных столбцов из таблицы vpa1_users и 3 левого конца столбцы из таблицы vpa1_user_profiles , Но мне нужна таблица Excel с одной записью каждой строки.

Любые советы по решению этой проблемы или если у кого-то есть лучшая идея о том, как получить дамп в одном файле Excel?

ответ

0

Если вы используете это в базе данных MySQL вы можете использовать GROUP_CONCAT:

SELECT user_profiles.user_id, users.name, users.username, users.email, user_profiles.profile_values 
FROM x2iu9_users AS users 
LEFT JOIN (

SELECT user_id, GROUP_CONCAT(profile_value 
SEPARATOR ',') profile_values 
FROM x2iu9_user_profiles 
GROUP BY user_id 
) AS user_profiles ON users.id = user_profiles.user_id 

Я думаю, что это лучший способ, чтобы решить вашу проблему.

Понятно, что JOIN/INNER JOIN/LEFT JOIN выдаст несколько строк на ID, поскольку Joomla хранит каждую пару/пару/пару_профиля в качестве отдельной строки.

(Я испытал это на собственном Joomla DB, и он будет производить этот вывод:

user_id name username email   profile_values 
89  name1 uname1 [email protected] "23521","","","","","","","","","",false 

)

+0

спасибо за подсказку. Проблема в том, что файл Excel должен иметь только одно значение для каждой ячейки. Профиль _value содержит строку в предлагаемом решении. – kraadde

Смежные вопросы