具有固定值的虚拟表mysql

mzaanser  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(207)

有没有可能有一个固定值的虚拟表?
我有下一个问题

SELECT 
    d1
FROM 
    (SELECT DISTINCT(date) AS d1 
     FROM table1 
     WHERE date IN ("2018-01-01","2018-05-04")
    ) t1
    RIGHT JOIN 
    (SELECT "2018-01-01","2018-05-04" ) t2
ON t1.d1=t2.?;

日期是一样的。
如果没有带有这些日期的条目,我想得到null。
但我需要一个问号里的别名。
或者我需要别的东西。
我如何创建一个像这样的虚拟表,只是为了在联接中使用它。

-- Temp table --
value
2018-01-01
2018-05-04

我想避免任何创建(临时表)。
因为与 SELECT 1,2,3 我得到的是水平值而不是垂直值。
也许这个例子解释得更好。http://sqlfiddle.com/#!9/49f04/4号
选择date,date from dates,其中date位于(“2018-01-02”、“2018-01-04”、“2018-01-06”);


# What I want to show is

# 

# date1      date2

# 2018-01-02 null

# 2018-01-04 null

# 2018-01-06 2018-01-06

因为没有前两次约会的信息

z9gpfhce

z9gpfhce1#

您可以这样做:

SELECT . . .
FROM (SELECT '2018-01-01' as dte UNION ALL
      SELECT '2018-05-04' as dte
     ) d LEFT JOIN
     (SELECT DISTINCT date AS d1 FROM table1 WHERE date IN ("2018-01-01","2018-05-04")) t1
    ON t1.d1 = d.dte;

这回答了你的具体问题。我不确定您真正想做什么,但这是一种非常常见的查询技术。

相关问题