簡體   English   中英

兩個聯合的左連接結果

[英]left join result of two union

試圖加入這兩個信息並創建一個新表。 我的目標是添加創建年月表

例如

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
;

您可以使用以下解決方案:

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 ...您可以在一個查詢中SELECTINSERT選定的值到新表中。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM