2016-03-10 2 views
0

У меня есть две таблицы: пользователи и user_meta. Я хотел бы получить все мета-строки пользователя в том же запросе, что и обычная информация пользователя. Как я могу присоединиться к строкам таблицы user_meta, которые будут работать как столбцы в первой таблице?mysql соединяет строки другой таблицы в виде столбцов в запросе

user_meta: user_id (интермедиат 15), контекст (VARCHAR 250), значение (VARCHAR 250)

 SELECT 
      m.user_id AS id, m.member_group_id, m.avatar_id, m.display_name, m.email_address, UNIX_TIMESTAMP(m.join_date) AS join_date, m.status, 
      l.member_id, COUNT(l.member_id) AS total_listings, 
      g.group_id, g.title AS group_title, 
      a.attachment_id, a.file_path AS avatar_path 
     FROM users AS m 
     LEFT JOIN user_meta AS meta ON m.user_id = meta.user_id 
     LEFT JOIN listings AS l ON l.member_id = m.user_id 
     LEFT JOIN groups AS g ON m.member_group_id = g.group_id 
     LEFT JOIN attachments AS a ON m.avatar_id = a.attachment_id 
     WHERE m.user_id = ".$id." 
     GROUP BY m.user_id 
     LIMIT 1 

ответ

0

просто попробовать это m.user_id AS id ORDER BY ASC

0

Просьба уточнить ваш вопрос. Вы упомянули 2 таблицы: пользователи & метаданные, но в примере запроса у вас есть списки таблиц, группы и вложения. Для какого поля метаданных вы хотите сортировать?

Имейте в виде, что для подсчета (l.member_id) для работы вы должны группе для всех других областей:

Group by m.user_id , m.member_group_id, m.avatar_id, m.display_name, m.email_address, UNIX_TIMESTAMP(m.join_date), m.status, 
      l.member_id, g.group_id, g.title , 
      a.attachment_id, a.file_path 

Если вы хотите do't группу всех других мест, у вас есть для создания подзапроса, что-то вроде примера ниже, где подзапрос был для подсчета.

SELECT 
      m.user_id AS id, m.member_group_id, m.avatar_id, m.display_name, m.email_address, UNIX_TIMESTAMP(m.join_date) AS join_date, m.status, 
      l.member_id, 

(select COUNT(l.member_id) from listings where listings.member_id=m.user_id) AS total_listings, 

      g.group_id, g.title AS group_title, 
      a.attachment_id, a.file_path AS avatar_path 
     FROM users AS m 
     LEFT JOIN user_meta AS meta ON m.user_id = meta.user_id 
     LEFT JOIN listings AS l ON l.member_id = m.user_id 
     LEFT JOIN groups AS g ON m.member_group_id = g.group_id 
     LEFT JOIN attachments AS a ON m.avatar_id = a.attachment_id 
     WHERE m.user_id = ".$id." 
order by   
m.user_id 
     LIMIT 1 
Смежные вопросы