问题标签 [on-clause]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4557 浏览

sql - Teradata - 添加前面的零并转换为 varchar(50)

我有以下查询:

在这里,在最后一个连接条件下,u.colmis of typevarchar(50)t.coldis of type decimal(10, 0)。我不能转换u.colmdecimal(10, 0)因为该列中的一些过时值不是纯粹的数字。现在,如果我如上所示运行查询,它将返回一个空白表,因为其中的公共值u.colm有一个前面/前导零,而t.cold没有那个零。我尝试了以下方法:

1) on u.colm = '0' + cast(t.cold as varchar(50))

这给出了错误: [Teradata Database] [2620] The format or data contains a bad character.

2)on u.colm = right('0000000000' + cast(t.cold as varchar(50)), 50)

这给出了错误: [Teradata Database] [9881] Function 'TD_RIGHT' called with an invalid number or type of parameters

链接1 中的问题、答案和评论提供更多上下文。我对 Teradata 很陌生,对如何解决这个问题没有太多想法。请帮忙。

0 投票
1 回答
81 浏览

sql - 在 WHERE/Joining 3 个表中进行子查询,2 个用于记录,1 个用于数字,不返回结果/失败 - MSAccess

我的查询确实返回任何记录。根据我的编写方式,它不返回任何记录或所有记录,尽管我没有刚刚返回所有内容的代码。

我需要从两个具有实际记录的源中提取数据,第三个表具有项目范围的信息,而不是特定于任何记录。我需要过滤掉大于 Miles_Budgeted 变量的记录。

这不会返回任何记录,尽管如果我将 param.Miles_Budgeted 替换为数值(例如 1000),它会过滤到所需的记录。

此查询变体未运行(FROM 子句中的语法错误)

这也不会返回任何记录:

再次,如果

替换为数值,则查询返回正确的记录。我尝试用 val() 或 Format(,"Standard") 包围 subq 或字段,但这并不能解决问题;仅包含相关代码的单独查询将正确的 Budgeted_Miles 返回为 1000。

任何想法表示赞赏。

0 投票
1 回答
778 浏览

codeigniter - CI和在join上

我在 CI 中的这个加入时收到 500 错误但是当我只使用

查询没问题。

如何在 CI 中加入和加入的 ON 部分?

FYI

  1. 在 MS SQL Server Management Studio 中尝试了整个查询,它运行正常。
  2. 放入D.col2 = "MAIN"where 子句也有效
0 投票
1 回答
1760 浏览

join - 谓词下推 vs On 子句

在 Hive 中执行连接,然后使用 where 子句过滤输出时,Hive 编译器将尝试在连接表之前过滤数据。这称为谓词下推(http://allabouthadoop.net/what-is-predicate-pushdown-in-hive/

例如:

如果启用了下推谓词(hive.optimize.ppd),则表 a 中 some_name = 6 的行将在执行连接之前被过滤。

但是,我最近还了解到,在将表与另一个表连接之前,还有另一种过滤数据的方法(https://vinaynotes.wordpress.com/2015/10/01/hive-tips-joins-occur-before -where子句/ )。

可以在ON子句中提供条件,在join之前先过滤表a

例如:

这两个都提供谓词下推优化吗?

谢谢

0 投票
1 回答
30 浏览

mysql - MYSQL 在左连接中添加 OR 子句会减慢查询速度

我有两个数据库表:orderscustomers

我正在运行 SQL 来获取 6 月份的所有订单。

如果Ship ToBill To电子邮件不同,我们将插入两个不同的记录,这两个电子邮件都发送给客户表。

但是由于条件的原因,此 SQL 的加载时间过长,

如何在 ON 子句中添加两个条件?

任何帮助,将不胜感激。

0 投票
0 回答
39 浏览

java - 使用 ON 子句对 Collection 进行 HQL 查询

下面是 HQL 查询,当我在 Collection 属性上使用带有 ON 子句的联接操作时,它给了我语法错误。

我有一个 Source.java 文件,其中包含 Customer bean 的一个 Collection 属性,其中 OneToMany 映射由 Customer bean 中的源属性映射。

HQL 查询:

Java 类片段:

0 投票
1 回答
373 浏览

sql - PostgreSQL 中的 SQL JOIN - WHERE 子句中的执行计划与 ON 子句中的不同

我们在 PostgreSQL 11.9/11.10 或 12.5 中有一个简单的语句,我们可以使用 WHERE-CLAUSE 或 ON-CLAUSE 编写连接。含义完全相同,因此返回的行数也是如此 - 但我们收到了不同的解释计划。随着表中的数据越来越多,一个执行计划变得非常糟糕,我们想了解为什么 PostgreSQL 为这种情况选择不同的解释计划。有任何想法吗?

让我们创建一些示例数据:

我们的声明与全面分析的统计数据:

带有“GOOD”行的解释计划(ON-CLAUSE):

带有“BAD”行的解释计划(WHERE-CLAUSE):

0 投票
2 回答
45 浏览

php - 错误号:1054 'on 子句'中的未知列'2021-08-23'

我通过 LEFT JOIN 在此查询中加入了许多表,我想在表上应用条件,但 php 给了我以下错误

错误号:1054 'on 子句'中的未知列'2021-08-23'

选择 i.isn_Add_Date, s.scentre_Name, i.isn_Job_No,cp.cpart_Part_Id, cp.cpart_Part,cp.cpart_Qty,cp.cpart_Rate,cp.cpart_Amount, p.product_Name,m.model_Name,c.complaint_Job_No,c.complaint_Add_Date, c .complaint_Under_Warranty,cp.cpart_Qty,cp.cpart_Rate,cp.cpart_Amount FROM 投诉为 c LEFT JOIN 投诉部分为 cp ON c.complaint_Id = cp.cpart_Complaint_Id LEFT JOINscentres as s ON s.scentre_Id = c.complaint_Scentre_Id LEFT JOIN products as p ON p.product_Id = c.complaint_Product_Id 左连接模型为 m ON m.model_Id = c.complaint_Model_Id 左连接为 i ON i.isn_Complain_Number = c.complaint_Job_No AND i.isn_Add_Date BETWEEN '2021-08-23' AND '2021-08 -26' 其中 c.complaint_Scentre_Id = '1' AND c.complaint_Status = 'Delivered' AND c.complaint_Trash = 0

这是我的php代码

0 投票
1 回答
83 浏览

mysql - MySQL根据条件连接两个表

我有两张桌子。

用户

刷卡

我需要根据条件将这些加入到表swp_from中。swp_to

我的查询是这样的:

正如上面查询中所解释的,我已经加入swp_to了该users表。但我还需要swp_from将第二个条件 inWHERE子句与users表连接起来。我怎样才能做到这一点?

简单来说,如果满足第一个 where 条件,我需要使用查询与users表连接。swp_to如果第二个条件(在 OR 之后)得到满足,那么我希望加入swp_from而不是swp_to. 这应该发生在每一行。PHP 条件逻辑解决方法也可以。

0 投票
1 回答
17 浏览

sqlite - 带有子查询和 ON CONFLICT 的 INSERT INTO

我想将 JSON 数组中的所有元素插入到表中:

到目前为止这有效,但我真的需要这个WHERE value LIKE '%'子句吗?

当我删除它时:

我收到此错误: