осталось объединить результат двух союз - PullRequest
0 голосов
/ 24 апреля 2019

Попытка объединить эти две информации и создать новую таблицу.Моя цель - добавить таблицу для создания года и месяца

Например

t1 is
Year
1990
1991
1992

t2 is
Jan
Feb 
Mar

Я хочу, чтобы все возможные комбинации были в одной таблице.

1990-Jan
1990-Feb
1990-Mar
1991-Jan
1992-Feb... 

, поэтому я не ставил никаких условий для своего кода.

   SELECT b.year
    FROM 
    (
    SELECT year from barcelona.births
    UNION 
    SELECT year from barcelona.immigrants_by_age
    )
    AS b
left join a.month,
    FROM 
    (
    SELECT month 
    from barcelona.unemployment
    UNION 
    SELECT month from barcelona.accidents
    )
    AS a
;

1 Ответ

0 голосов
/ 24 апреля 2019

Вы можете использовать следующее решение:

INSERT INTO new_table_name (create_year, create_month) 
    SELECT t1.create_year, t2.create_month FROM t1, t2

Если вы хотите объединить значения вместе, вы можете использовать следующее:

INSERT INTO new_table_name (create_year_month) 
    SELECT CONCAT_WS('-', t1.create_year, t2.create_month) FROM t1, t2

Использование JOIN (или аналогично решению ,) без условия (без ON) создает каждую возможную комбинацию между строками двух таблиц. Используя INSERT INTO ... SELECT ..., вы можете SELECT и INSERT выбранные значения в одном запросе в новую таблицу.

демо на dbfiddle.uk


Ваш запрос должен выглядеть следующим образом:

SELECT b.`year`, a.`month`
FROM (
    SELECT `year` FROM barcelona.births
    UNION 
    SELECT `year` FROM barcelona.immigrants_by_age
) AS b, (
    SELECT `month` FROM barcelona.unemployment
    UNION 
    SELECT `month` from barcelona.accidents
) AS a
...