Sql 是否可以在联接查询中包含双表

Sql 是否可以在联接查询中包含双表,sql,oracle,Sql,Oracle,是否可以在联接查询中包含双表 有谁能给我一个例子,其中包括双表中的SYSTIMESTAMP。试试这个解决方案: select (select SYSTIMESTAMP from dual ) as d /* Here you can add more columns from table tab */ from tab 一个常见的用法(对我来说)是使用它来创建内联视图以连接到 SELECT filter.Title, book

是否可以在联接查询中包含双表

有谁能给我一个例子,其中包括双表中的
SYSTIMESTAMP

试试这个解决方案:

 select (select SYSTIMESTAMP from dual ) as d
        /*
           Here you can add more columns from table tab
        */ 
 from tab
一个常见的用法(对我来说)是使用它来创建内联视图以连接到

SELECT
  filter.Title,
  book.*
FROM
(
  SELECT 'Red Riding Hood'  AS title FROM dual
  UNION ALL
  SELECT 'Snow White'       AS title FROM dual
)
  AS filter
INNER JOIN
  book
    ON book.title = filter.title

[这是一个故意简化的示例。]

应该没有必要,
DUAL
关键字是一种表示您没有查询表的方式,如果您想将
DUAL
与其他表“连接”,只需在select子句中查询其他表,包括不来自该表的列

编辑:正如评论所说,这句话是假的,
DUAL
是一个表。

我仍然认为没有必要(从问题中)包括在内

联接中的双表


基本上可以,但没有必要。
您可以将systimestamp伪列添加到现有的任何查询中:

SELECT t.col1, t.col2, systimestamp
FROM your_table t
将给出与相同的结果

SELECT t.col1, t.col2, d.st
FROM your_table t, (select systimestamp st from dual) d

请注意,双表只有一行,因此cartessian产品不会向原始查询中添加行。

您可以在Oracle中执行此操作。我在试图解决类似问题时发现了这个问题。诀窍是在子查询中包装
DUAL
,并返回一个静态值,您可以将其加入

在我的例子中,我想在插入新记录之前查看表中是否存在满足某些条件的记录。如果它存在,我想要
ID
列。如果它不存在,我希望序列中有一个新的
ID
值。我使用了
DUAL
来“伪造”一个外部连接,这样我总是能得到一行。然后,如果结果为空,我使用
NVL()
返回一个序列值

SELECT NVL(v.ID, REAL_SEQUENCE.nextval)
FROM (SELECT 1 as match FROM DUAL) d,
     (SELECT 1 as match, ID 
         FROM REAL_TABLE
         WHERE CONDITION = CRITERIA) v
WHERE d.match = v.match(+)

你应该用你正在使用的特定类型的SQL来标记你的问题。这不是真的,
DUAL
是一个表而不是一个关键字。在这里阅读更多:@A.B.Cade对,我的错。仍然
DUAL
被设计为一个助手,只要在查询中包含另一个表,就应该不再需要该助手了。用单行做笛卡尔积是没有意义的,因为它是中性元素,OP明确要求“在联接中包含双表”。谢谢大家的回答。卡德的解决方案奏效了。我试图做的实际工作如下:当我们使用Fiddler或Postman对服务器进行API测试时,DB返回事件时间戳vaules。我需要将此时间戳值与webservice调用返回时间戳进行比较,即实际http web响应的时间戳。结束时间值。这个值应该由开发人员包含在API中,还是我们可以通过任何方式查询并获取它?如何将这个时间戳转换成CDT?如果这不是一个相关的问题,我将打开新的线程。谢谢你,我不确定我是否理解你的要求,但似乎你应该为这个问题开辟一条新的思路。至于CDT,带有时区的
时间戳
数据类型(作为systimestamp)已经支持CDT,请在这里阅读更多Hi ABCAde,我只需要在http web响应返回时获取时间戳。我正在使用Fiddler点击服务器的API,该服务器成功地给出如下http响应:“header”:{“product”:“xxxxxxxxx”,“version”:“xxxxxxxxx”},“status”:{“elapsedTime”:329,“httpReturnCode”:200,“statusCode”:0,“success”:true,“startTime”:1350387905444,“statusDescription:“Successful”},---这是json响应。但这并没有显示结束时间,即回复返回的时间。有什么想法吗?@rktimeless,对不起,我还是不明白。查询
select systimestamp from dual
将为您提供DB时间戳,它与http响应时间无关。我是一个DB人,我不明白你说我使用Fiddler访问服务器的API是什么意思。打开一个新的帖子并标记您的问题,以便其他了解更多的人可以看到您的新问题谢谢!我知道systimestamp,但不确定如何在我的桌子上使用它。谢谢你的帮助。