下面的两个查询有什么区别?
更新
这个问题已经在一个类似的问题中得到了回答,。
SELECT * FROM ca
LEFT JOIN exam
ON ca.subject = exam.subject
和
SELECT * FROM ca
LEFT OUTER JOIN exam
ON ca.subject = exam.subject
表格
Table 'CA'
--------------------
subject|score
----------------
ENG |25
MTH |34
BIO |18
Table 'Exam
问题
下面的错误信息显示的方式是否有解释,或者是否有一种在子查询中利用可能丢失的数据的文档化的最佳实践?
问题
当我从左联接到CTE的表中引用一个字段时,BigQuery会产生一个令人困惑和毫无帮助的错误。
错误消息
LEFT OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join.
特定目标
我的特殊情况是试图利用对现有dates表的子查询来计算两个日期之间的业务天数。
可复制示例
当我将子查询介绍为selected字段时,下面的查询将引发以
我刚开始使用hive,并试图在我在HDFS文件之上创建的两个外部表上执行以下简单的子查询示例。
item_id和k_item_id是同一时间的bigint。有人能帮我理解错误的确切原因吗?
hive> SELECT item_id FROM hivedev.ext_c_oi_item2 WHERE
item_id NOT IN (SELECT k_item_id FROM hivedev.ext_c_ksn2);
错误:
失败: ParseException第1:71行无法识别在表达式规范中“SELECT‘'k_item_id’from‘附近的输入
假设我有桌子,Invoices和Customers。所有发票都应该有客户,但并不是所有的发票都有。
,我想选择所有的发票,并把它加入到客户,问题是如果发票没有客户,那么发票就不会出现在结果中。
我现在拥有的是:
var query = from inv in Db.Invoices
join cust in Db.Customers on inv.IdCustomer equals cust.Id
select new { Invoice=inv, Customer=cust };
如果发票上有客户
我对SQL查询很陌生,我正在进行一个查询,以打印演员出现过的电影的COUNT,如果没有出现在任何电影中,则包括总计的0。
我得到了所有的结果,如预期,除非一个演员没有出现在任何电影,然后他们没有出现在名单上。
到目前为止,我的情况是-
SELECT a.actor_name, count(*)
FROM ACTOR a
JOIN CAST_MEMBER c ON (a.actor_name = c.actor_name)
GROUP BY a.actor_name
UNION
SELECT c2.actor_name, 0
FROM ACTOR a2 JOIN CAST_MEM
我有一个查询,它在每次运行查询时都会在查询的左联接子句中使用子选择,这会导致org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: (错误。以“(”作为我的子选择的开头括号)。
我的查询沿途查找了一些内容:
SELECT a, b, c
FROM table1 as t1
INNER JOIN t1.table2 as t2
INNER JOIN t1.table3 as t3
INNER JOIN t3.table4 as t4
LEFT JOIN ( //<- this one gives the
我知道错误了
“您的SQL语法出现了错误;检查与您的MySQL服务器版本对应的手册,找出正确的语法,以便在a.rollno=p.username上使用接近‘完全外部连接的a.rollno=p.username a’,其中第1行为ps.自由度=‘B’。”
我使用的查询如下:
SELECT p.username, p.firstname, a.matric_obtain_marks
FROM adm_student_academic a,
profile_student AS ps,
PROFILE p FULL OUTER JOIN adm_student_ac
基本上,我有一个类似如下的mysql查询:
mysql_query("SELECT n.title, v.value FROM posts n INNER JOIN votes v ON n.id = v.id");
我需要做的是从posts表中获取标题,并从votes表中获取当前投票值。
目前,除非发生投票,否则投票不会存储到投票表中。所以所有投票为0的帖子都不在投票表中。
这会导致错误,它试图获取标题和投票值,其中帖子id =投票值id。如果投票表中没有任何记录,那么value应该返回NULL或0,但是目前整个查询返回null,所以我甚至不能返回标题。
如何在一个查询中解决
我有一个查询,它是我从MSSQL2000中提取的,并插入到一个MySql查询中。这不起作用,MySql会被*=操作员卡住。在本例中,我有两个名为person_name的varchar列。
SELECT * FROM tbl1 a, tbl2 b
WHERE a.id = b.id
AND a.person_name *= b.person_name
我知道在其他语言中,myInt *= myTotal也可以理解为myInt * myInt = myTotal。但是,我使用的varchars只包含所有字符,不包含整数。我把它写成这样:
AND a.person_name * a.person_
当我在Microsoft SQL Server2012上执行以下查询时,我得到了表RequiredVisitLink中没有的值。为什么会发生这种情况?我希望得到的值只对两者都是通用的,并且满足条件。
select a.ID from table1 a left join table2 b on a.ID = b.ID where Baseball=1
我得到了间歇性错误:FULL OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join. BigQuery昨天运行了几个小时,但现在又给了我这个错误。
我使用“个人历史记录”确认,昨天成功的查询今天出现了此错误。不管是哪种方式,这都是给出错误的查询,而我无法想出另一个给出相同结果的查询。我见过,但我的几何图形没有我所知道的唯一I。
SELECT * FROM
`segments` AS s
FULL OUTER JOIN `zones` AS
我试图在一个LEFT JOIN查询中获取两个具有两个MySQL的不同表的行数。当我在这样的一个表上有一个COUNT时,它工作得很好:
SELECT a.title, a.image, COUNT(o.id) AS occasions
FROM activity a
LEFT JOIN occasion AS o ON a.id = o.activity_id
WHERE a.user_id = 1
GROUP BY a.id
ORDER BY a.created_at
DESC LIMIT 50
在这里,一切正常,我得到了大量的“场合”。
但是,当我尝试添加一个附加的COUNT和一个额外
当我运行此查询时
SELECT CustomerId FROM Stocks.dbo.Suppliers
它给了我这个错误。列名'CustomerId‘无效。这个错误是有效的,因为在供应商表中没有列CustomerId;但是当我在子查询中使用相同的查询时,它不会给出任何错误。
SELECT *
FROM SomeOtherDb.dbo.Customer
WHERE CustomerId In( SELECT CustomerId
FROM Stocks.dbo.Suppliers)
在这里,我期望出现相同的错误"Inv
我有两张桌子:订单和顾客。订单有来自客户的外键:
我可以通过两种不同的方式加入他们:
First way
Select *
from [Order]
join Customer
on [Order].Customer_id = Customer.id;
第二道
Select *
from [Order],Customer
where [Order].Customer_id = Customer.id;
这两个查询返回相同的结果集,这就引出了我的相关问题:
在这两种查询中,哪一种查询更好? execution?Why,它们之间有区别吗?,当我搜索连接示例时,它们都使用第一种方式吗?
尝试使用如下所示的子查询在配置单元中运行此查询:
select y,m,d,h from A
where d not in (select d from B)
我收到一个错误,即"only subquery expressions that are top level conjuncts are allowed"
有谁知道这意味着什么,以及如何绕过它?
提前感谢!
在MySQL中,我可以执行SELECT (SELECT COUNT(*) FROM table1) - (SELECT COUNT(*) FROM table2)来获得两个表之间计数的差异。当我在BigQuery中尝试这个时,我得到:Subselect not allowed in SELECT clause。如何在BigQuery中运行这样的查询?
我有两个包含要搜索的信息的表,一个主表和一个注释表。主表包含时间戳、主题等,而comments表包含主表中各个记录的注释。这基本上是一个简单的票务系统。
我需要能够在同一查询中搜索主表和注释表中的内容。下面是我现在的查询:
SELECT DISTINCT d.* FROM ticket_data d, ticket_comment c WHERE
(
d.subject LIKE '%test%' OR
d.message LIKE '%test%' OR
c.comment LIKE '%test%
我有一个Telerik RadGrid,它绑定到数据源中有以下Select:
SELECT g.GroupID,
c.ClientName,
r.CarrierName,
p.PlanName
FROM Group AS g
JOIN Client AS c
ON g.ClientID=c.ClientID
JOIN Carrier AS r
ON g.CarrierID=r.CarrierID
JOIN Plan AS p
ON g.PlanID=p.PlanID
RadGrid有可过滤的列,后面的代码将过滤
我构建了这个不言自明的查询:
SELECT events.*,(SELECT COUNT(*)
FROM events_participants
WHERE events_participants.eventid=events.eventid)AS participants,linkViews.totViews
FROM events INNER JOIN linkViews ON events.event_id=LinkViews.eventid
在events表中,我有6个事件,但是这个查询只返回其中的3个(ID:1,2,4)。
这个查询哪里错了?
我有一点that难题似乎正在起作用,但我想知道是否有人可以尝试给我一个关于发生了什么的细分,here.Consider,下面的脚本:
SELECT *
FROM TableA a
WHERE a.CustomerID NOT IN (SELECT b.CustomerID FROM TableB b WHERE a.CustomerID = b.CustomerID AND a.WorkOrder = b.WorkOrder)
AND a.[Date] > DATEADD(DD,-3,GETDATE())
对于编译器如何没有在这个脚本上崩溃,我感到很困惑。它如何在引用外部查询的子查询上选
我使用SQL4将linq查询转换为LinqPad,但我对转换后的sql查询感到非常困惑。我有一个与AppliedJob相关的职务表。AppliedJob与JobOffer相关。JobOffer与合同相关。合同表中有一个字段CompletedDate,该字段在职务合同开始时最初设置为“空”。如果作业已完成十次,则该字段将更新为当前日期。我想得到那些CompletedDate !=Null的工作列表(如果在合同表中找到的话)。这意味着与工作相关的合同尚未完成或在合同表中找不到。未找到表示任何合同未随作业一起启动。我的Linq:
from j in Jobs
join jobCon
我想知道除了子查询和临时表之外,是否还有其他方法来计算您分组的行中有多少重复值。
例如,获取唯一值计数很容易,但我想获取出现多次的值的计数。
示例:
SELECT url, HOUR(dttm), COUNT(DISTINCT visitorIP) UniqueVisitors,
COUNT("visitorIPs that visited more than once") RepeatVisitors
FROM table
GROUP BY url, HOUR(dttm)
有什么想法吗?我所能想到的就是子查询或另一个表。
考虑一下来自的示例
SELECT p.Name, pr.ProductReviewID
FROM Production.Product p
LEFT OUTER JOIN Production.ProductReview pr
ON p.ProductID = pr.ProductID
在这个示例中,很明显,左边的上的表是"Production“,所有行都将从那里返回,然后只返回与ProductReview匹配的行。
但是现在考虑下面的假设查询,包括3个表A、B、C
select * from A
inner Join B on A.field1 = B.field1
left out
我目前正在使用以下内容更新我的表:
UPDATE Check_Dictionary
SET InDict = "No" WHERE (Leagues, Matches, Line) IN (SELECT * FROM (
SELECT Leagues, Matches, Line FROM Check_Dictionary
WHERE InDict = "No")as X)
但是,当我拥有大型数据集(40k+行)时,这似乎相当低效/缓慢。我正在进行的所有搜索都表明,与子
我有下面的条件API查询,用于根据许多Subject属性计算给定的值。
...
Expression literal = builder.literal((String) "%" + filterValue + "%");
// When the globalFilter is deleted it returns ""
if (!"".equals(filterValue)) {
// JPQL equivilant: SELECT e FROM Subject e JOIN e.com