问题标签 [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.
sql - Teradata - 添加前面的零并转换为 varchar(50)
我有以下查询:
在这里,在最后一个连接条件下,u.colm
is of typevarchar(50)
和t.cold
is of type decimal(10, 0)
。我不能转换u.colm
为decimal(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 很陌生,对如何解决这个问题没有太多想法。请帮忙。
sql - 在 WHERE/Joining 3 个表中进行子查询,2 个用于记录,1 个用于数字,不返回结果/失败 - MSAccess
我的查询确实返回任何记录。根据我的编写方式,它不返回任何记录或所有记录,尽管我没有刚刚返回所有内容的代码。
我需要从两个具有实际记录的源中提取数据,第三个表具有项目范围的信息,而不是特定于任何记录。我需要过滤掉大于 Miles_Budgeted 变量的记录。
这不会返回任何记录,尽管如果我将 param.Miles_Budgeted 替换为数值(例如 1000),它会过滤到所需的记录。
此查询变体未运行(FROM 子句中的语法错误)
这也不会返回任何记录:
再次,如果
替换为数值,则查询返回正确的记录。我尝试用 val() 或 Format(,"Standard") 包围 subq 或字段,但这并不能解决问题;仅包含相关代码的单独查询将正确的 Budgeted_Miles 返回为 1000。
任何想法表示赞赏。
codeigniter - CI和在join上
我在 CI 中的这个加入时收到 500 错误但是当我只使用
查询没问题。
如何在 CI 中加入和加入的 ON 部分?
FYI
- 在 MS SQL Server Management Studio 中尝试了整个查询,它运行正常。
- 放入
D.col2 = "MAIN"
where 子句也有效
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
例如:
这两个都提供谓词下推优化吗?
谢谢
mysql - MYSQL 在左连接中添加 OR 子句会减慢查询速度
我有两个数据库表:orders和customers。
我正在运行 SQL 来获取 6 月份的所有订单。
如果Ship To和Bill To电子邮件不同,我们将插入两个不同的记录,这两个电子邮件都发送给客户表。
但是由于条件的原因,此 SQL 的加载时间过长,
如何在 ON 子句中添加两个条件?
任何帮助,将不胜感激。
java - 使用 ON 子句对 Collection 进行 HQL 查询
下面是 HQL 查询,当我在 Collection 属性上使用带有 ON 子句的联接操作时,它给了我语法错误。
我有一个 Source.java 文件,其中包含 Customer bean 的一个 Collection 属性,其中 OneToMany 映射由 Customer bean 中的源属性映射。
HQL 查询:
Java 类片段:
sql - PostgreSQL 中的 SQL JOIN - WHERE 子句中的执行计划与 ON 子句中的不同
我们在 PostgreSQL 11.9/11.10 或 12.5 中有一个简单的语句,我们可以使用 WHERE-CLAUSE 或 ON-CLAUSE 编写连接。含义完全相同,因此返回的行数也是如此 - 但我们收到了不同的解释计划。随着表中的数据越来越多,一个执行计划变得非常糟糕,我们想了解为什么 PostgreSQL 为这种情况选择不同的解释计划。有任何想法吗?
让我们创建一些示例数据:
我们的声明与全面分析的统计数据:
带有“GOOD”行的解释计划(ON-CLAUSE):
带有“BAD”行的解释计划(WHERE-CLAUSE):
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代码
mysql - MySQL根据条件连接两个表
我有两张桌子。
用户
刷卡
我需要根据条件将这些加入到表swp_from
中。swp_to
我的查询是这样的:
正如上面查询中所解释的,我已经加入swp_to
了该users
表。但我还需要swp_from
将第二个条件 inWHERE
子句与users
表连接起来。我怎样才能做到这一点?
简单来说,如果满足第一个 where 条件,我需要使用查询与users
表连接。swp_to
如果第二个条件(在 OR 之后)得到满足,那么我希望加入swp_from
而不是swp_to
. 这应该发生在每一行。PHP 条件逻辑解决方法也可以。
sqlite - 带有子查询和 ON CONFLICT 的 INSERT INTO
我想将 JSON 数组中的所有元素插入到表中:
到目前为止这有效,但我真的需要这个WHERE value LIKE '%'
子句吗?
当我删除它时:
我收到此错误: