У вашей базы данных есть проблемы. Вместо того, чтобы поддерживать отдельные столбцы для каждого избранного, вы должны изменить таблицу favorites
таким образом, чтобы в одной записи сохранялась одна и только одна взаимосвязь избранного пользователя:
CREATE TABLE favorites (
userID int not null,
favID varchar(50) not null,
FOREIGN KEY fk1(userID) REFERENCES users(userID)
);
Сейчас , если вы хотите сообщить избранные идентификаторы для данного пользователя, вам нужно использовать только базовое c соединение, например
SELECT
u.userID,
u.username,
GROUP_CONCAT(f.favID ORDER BY f.favID) AS favIDs
FROM users u
LEFT JOIN favorites f
ON u.userID = f.userID
GROUP BY
u.userID,
u.username;
Возможно, самая большая проблема с вашим текущим дизайном таблицы favorites
что он допускает только до 12 любимых идентификаторов. Если ваша система когда-либо будет нуждаться в поддержке большего, необходимо изменить саму таблицу, т. Е. Вам потребуется изменение DDL. С моим предложенным дизайном вам нужно будет только добавить больше записей / данных, что является изменением DML.