Мне нужно создать новую таблицу, основанную на двух существующих. http://sqlfiddle.com/#!9/74e49 Он должен содержать количество экземпляров каждого конкретного значения из таблицы1 в таблице2. Подобно:
Это должно быть что-то вроде этого для каждого последнего имени:
select table1.koatuu, count(table2.*)
from table2
where lastname = "Johnson"
inner join table1 on table1.postcode = table2.postcode
Мне нужна красная обведенная таблица. Могу ли я сделать это в запросе MySQL, не написав сценарий в Php?
Итак, в основном вы хотите перенести строки в столбцы
MySQL не поддерживает синтаксис ANSI PIVOT/UNPIVOT, поэтому вы можете использовать синтаксис MySQL Prepared Statement (dynamic SQL).
Вы можете использовать CASE для каждой строки, например, в SQL Transpose
Красная таблица имеет 2 колонки (lastname
и koatuu
). Чтобы получить все значения koatuu
для каждого lastname
используйте этот запрос
SELECT lastname,GROUP_CONCAT(koatuu) FROM lastname_koatuu GROUP BY lastname