У меня есть эти таблицы:GROUP_CONCAT на две колонки
партии
id | date | place
Party_Attendands
id | party_id | person_id | unknow_person_id
Лица
id | name | lastname
Я хочу денормализовать некоторые данные и избегать использования Party_Attendands. В основном я хочу вид, как
партии & PartyPeople
id | date | place | attendands_list
0 | 01/01/2016 | NY | 1,2,3,4
Запрос ниже возвращает person_ids
, но не unknow_person_ids
. Люди, которые разбили вечеринку, тоже люди :). Если неясно, unknow_person_ids
являются только идентификаторами, которые являются не в Persons
. Таким образом, каждый ряд Party_Attendands
содержит person_id
или unknow_person_id
, но не оба.
Таким образом, attendands_list
должен содержать person_ids
и unknow_person_ids
, в настоящее время обрабатывает только первые.
SELECT party.party_id, party.date, attendands.list
FROM party
LEFT OUTER JOIN
(
SELECT party_id , GROUP_CONCAT(Party_Attendands.person_id
ORDER BY person_id
SEPARATOR ',') AS list
FROM Party_Attendands
GROUP BY Party_Attendands.party_id
) AS attendands
ON party.party_id = attendands.party_id
Нет сомнений ... – Shadow
Значения 'person_id' и ваши значения' unknown_person_id' взяты из одной и той же последовательности чисел? Может ли человек иметь такое же значение id, как у другого Неизвестного? –
Нет, нет возможности иметь неоднозначные данные. ('unknown_person_id' начинается с 1000,' person_id' заканчивается около 300) – alfredopacino