2015-06-25 3 views
0
SELECT login.id_user 
    , username 
    , SUBSTRING_INDEX 
       (GROUP_CONCAT 
         (DISTINCT id_item 
          ORDER 
           BY items.ts_created 
         ),",",3 
       ) grouped_items 
    FROM login 
    , items 
WHERE login.username LIKE '%%' 
    AND items.id_user = login.id_user 
    AND login.ts_deleted IS NULL 
    AND items.ts_deleted IS NULL 
GROUP 
    BY login.id_user 
ORDER 
    BY login.ts_created DESC 

ID хотел бы получить записи из таблицы входа, в которой также нет элементов в таблице элементов. прямо сейчас запрос, который я написал, захватывает пользователей тремя последними элементами., столкнувшись с этим запросом mysql

У меня есть этот запрос, который захватывает всех пользователей. поэтому я предполагаю, что я пытаюсь объединить два запроса в один.

SELECT id_user,username 
FROM login 
WHERE login.ts_deleted IS NULL 
ORDER BY ts_created DESC 
+1

Если бы вы, пожалуйста, реорганизовать код так, что это не все одна линии это d сделать его гораздо более понятным для человека – 99ProblemsAndTheyreAllCode

+0

жаль, что он отредактировал его для удобочитаемости –

ответ

1

Если вы хотите всех пользователей, вам нужно left join и быть очень осторожным о on пункте:

SELECT l.id_user, l.username, 
     SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT i.id_item ORDER BY i.items.ts_created), ',', 3) as grouped_items 
FROM login l LEFT JOIN 
    items i 
    ON i..id_user = l.id_user and i.ts_deleted IS NULL 
WHERE l.username LIKE '%%' 
     l.ts_deleted IS NULL 
GROUP BY l.id_user 
ORDER BY l.ts_created DESC 
Смежные вопросы