没有唯一值的联接表

时间:2019-05-22 12:11:02

标签: mysql

我正在创建一个日期/唯一ID表,以简化我们需要作为团队运行的其他一些查询。基本上我有一组值(“ A”,“ B”,“ C”等) 并需要为每个值添加一个日期,以便结果类似于:

我有一张桌子,上面有我的所有日​​期和所有ID,我可以将它们加入并结束如下结果:

    Date ID
    1/1/2018 A
    1/1/2018 B
    1/1/2018 C
    1/1/2018 ..etc
    1/2/2018 A
    1/2/2018 B
    1/2/2018 C
    1/2/2018 ..etc

我知道我可以在excel中创建表或将其插入,但是随着添加更多值,我希望能够重新运行脚本以生成值。 这可能吗?

编辑-交叉连接效果很好

   select date, id from cal (cross join distinct id from source) t1

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询来获得预期的结果:

-- query to get the result in case the columns in the same table.
SELECT t_dates.Date, t_ids.ID FROM (
    SELECT DISTINCT Date FROM table_name
) t_dates, (
    SELECT DISTINCT ID FROM table_name
) t_ids
ORDER BY t_dates.Date ASC, t_ids.ID ASC

-- query to get the result in case the columns are in different tables.
-- this is also possible with the same table.
SELECT DISTINCT t_dates.Date, t_ids.ID 
FROM table_name1 t_dates, table_name2 t_ids
ORDER BY t_dates.Date ASC, t_ids.ID ASC

您也可以create a view

-- creating the view
CREATE VIEW table_id AS
SELECT t_dates.Date, t_ids.ID FROM (
    SELECT DISTINCT Date FROM table_name
) t_dates, (
    SELECT DISTINCT ID FROM table_name
) t_ids

-- using the view
SELECT * FROM table_id