Got это:MySQL выберите обновление
Table a
ID RelatedBs
1 NULL
2 NULL
Table b
AID ID
1 1
1 2
1 3
2 4
2 5
2 6
Потребность Таблица А иметь разделенный запятыми список, как указано в таблице б. И тогда таблица б устареет:
Table a
ID RelatedBs
1 1,2,3
2 4,5,6
Это не Рунд через все записи, а просто объявление один «б» на «столе»
UPDATE a, b
SET relatedbs = CONCAT(relatedbs,',',b.id)
WHERE a.id = b.aid
UPDATE: Спасибо, 3 правильных ответов (отмеченный старейшим как ответ)! GROUP_CONCAT - один из них. Не нужно вставлять запятые между идентификаторами с помощью связанных лиц = CONCAT (relatedids, ',', next_id), которые автоматически выполняются GROUP_CONCAT.
Если честно, это, вероятно, плохой выбор в том, как вы управляете своей базой данных. Не сказать, что вы не можете этого сделать, но идея внешних ключей состоит в том, чтобы делать именно то, что у вас есть, а не то, что вы пытаетесь сделать. Какова ваша мотивация? Ваши запросы будут значительно более сложными, если вам когда-нибудь понадобится получить 'RelatedBs' и использовать их в SQL. –
Правда. Но я по-прежнему часто использую запятую, разыскивая иды, когда это отношение один-два. Когда это отношение много-двух, я всегда использую mm-таблицу для обработки отношений. – Tillebeck