Создать таблицу из существующих таблиц в MySQL

0

Мне нужно создать новую таблицу, основанную на двух существующих. http://sqlfiddle.com/#!9/74e49 Он должен содержать количество экземпляров каждого конкретного значения из таблицы1 в таблице2. Подобно:

  • Имя - koatuu1 - koatuu2 - koatuu3 - koatuu_N... koatuu_350
  • Johnson - 5 - 12 - 76 - 9 - 321 - 4

Это должно быть что-то вроде этого для каждого последнего имени:

select table1.koatuu, count(table2.*) 
from table2 
where lastname = "Johnson"
inner join table1 on table1.postcode = table2.postcode

Мне нужна красная обведенная таблица. Могу ли я сделать это в запросе MySQL, не написав сценарий в Php?

  • 0
    Предоставьте нам структуры таблиц, примеры данных (без изображений) разместите их на sqlfiddle.com или db-fiddle.com, как в справочном руководстве говорится stackoverflow.com/help/how-to-ask («Как создать минимальное, полное, и проверяемый пример. ") Также предоставьте нам ожидаемый результат.
  • 0
    Я делаю это в первый раз, извините. Это оно? sqlfiddle.com/#!9/74e49
Показать ещё 2 комментария
Теги:

2 ответа

0

Итак, в основном вы хотите перенести строки в столбцы

MySQL не поддерживает синтаксис ANSI PIVOT/UNPIVOT, поэтому вы можете использовать синтаксис MySQL Prepared Statement (dynamic SQL).

Вы можете использовать CASE для каждой строки, например, в SQL Transpose

0

Красная таблица имеет 2 колонки (lastname и koatuu). Чтобы получить все значения koatuu для каждого lastname используйте этот запрос

SELECT lastname,GROUP_CONCAT(koatuu) FROM lastname_koatuu GROUP BY lastname

Ещё вопросы

Сообщество Overcoder
Наверх
Меню