#mysql #sql #select
#mysql #sql #выберите
Вопрос:
Как я могу получить каждую статью имя всех авторов в статье (отличается от статьи к другой)
Таблица пользователей : ИДЕНТИФИКАТОР ИМЯ FNAME 1 A AA 2 B BB 3 C CC 4 D DD Статьи ИДЕНТИФИКАТОР АВТОРА название 1 1,3 ty 2 4 tz Результаты A.id A.название Имя_пользователя Имя_пользователя 1 ty A C 2 tz D нет пользователя
Его рабочее спасибо, есть ли способ создать один пользовательский столбец вместо двух, подобных этому :
ИДЕНТИФИКАТОР НАЗВАНИЕ НАЗВАНИЕ 1 ty A, C 2 yy B, C, E
потому что иногда у нас есть более 7 авторов :/
Комментарии:
1. максимум 2 автора на статью?
2. Первым шагом будет изменение структуры вашей таблицы. Никогда, никогда, никогда не храните несколько значений в одном столбце!
Ответ №1:
Предполагается, что в статье не более 2 авторов
select a.id, a.title, b.u1, b.u2
from articles a
join (
select if(a.id=b.id,a.id,concat(a.id,',',b.id)) author, a.name u1, if(a.id=b.id,'no user',b.name) u2
from users a
join users b) b on a.author = b.author;
Комментарии:
1. Его рабочее спасибо, есть ли способ создать один пользовательский столбец вместо двух, как указано выше.
Ответ №2:
Попробуйте с этим
SELECT A.id, A.title, A.name
FROM USERS U, ARTICLES A
WHERE U.id in (A.author)
Ответ №3:
использование concat()
mysql для объединения имен пользователей в одном столбце.
Комментарии:
1. Хотя это может быть правильным, было бы полезно, если бы вы могли привести простой пример.