问题标签 [left-join]
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 - SQL 查询 - 仅在不存在完全匹配时才使用 Like?
我对当前使用的查询有疑问
但是,我发现只有在没有完全匹配的情况下才需要它。正在发生的事情是由于使用 ,查询是双重浸入LIKE
,所以如果它首先测试完全匹配,那么它将避免双重浸入问题。任何人都可以为我提供任何进一步的指导吗?
sql - Oracle 连接(左外、右等:S)
我知道 stackoverflow 会帮助我,而不是知道什么是“最喜欢的编程卡通”:P
这是被接受的答案: Bill Karwin
感谢大家的帮助(我想给大家投票)
我的查询结果是这样的(这是真实的)
现在我只需要加入其他表格即可获得人类可读的报告。
原帖
你好。
我挣扎了大约6个小时。现在有一个数据库查询(我的长期克星)
我有一个包含一些字段的数据表,例如:
它用于跟踪票证的历史记录
标识符:是一个客户 ID,如 ( NAF0000001 )
活动:是票的位置(新的、进行中的、拒绝的、关闭的等)
参与者:是当时参加票的人的fk
closedate:是该活动完成的日期。
编辑:我应该说“完成日期”而不是关闭日期。这是活动完成的日期,在工单关闭时不是必需的。
例如,典型的历史可能是这样的:
参与者 1=jonh, 2=scott, 3=mike, 4=rob
和活动 1=新,2=进行中,3=等待批准,4=关闭
等等。还有几十个其他不相关的信息。
那么我的问题如下。
我设法创建了一个查询,我可以在其中知道票证何时打开和关闭
是这样的:
但我不知道哪些票没有关闭以及谁在参加。
到目前为止,我有这样的事情:
那就是给我所有有开始( new = 1 )但没有关闭( closed = 4 )的人
但这里最大的问题是它打印了打开票的参与者,但我需要参加它的参与者。所以我将“进行中”活动添加到查询中。
但并非“新”中的所有行都是“进行中”,并且通过该查询我删除了所有行。
我需要的是显示所有“进行中”的参与者,如果票不是“进行中”,它将显示为空。
类似的东西
在这种情况下
NA002、NA003 和 NA004 处于“新”状态,因此没有显示参与者
尽管
NA005 和 NA006 正在“inprgress (act = 2 )”并且他们正在被 rob (参与者 4 ) 参加
所以我记得有一个东西叫做左外连接或类似的东西,但我从来没有理解过。我想知道的是如何获取“正在进行”和“新”且未关闭的标识符。
可能稍微休息一下会帮助我理清思路。如果有人知道该怎么做,我将不胜感激。
顺便说一句,我试过:
但是给了我与以前相同的结果(仅删除“新”记录)
sql - 关于 LEFT JOIN SQL 查询的 WHERE 帮助
我正在尝试构建一个查询,该查询将包含一个指示用户是否已下载文档的列。我有一个名为 HasDownloaded 的表,其中包含以下列:id、documentID、memberID。找出用户是否下载了特定文档很容易;但我需要生成一个查询,结果如下所示:
ID 并不重要。我感兴趣的是文档是否已下载(是否为 NULL)。
这是我的查询:
问题是,只有在 HasDownloaded 表中存在指定用户的条目时才会返回值。我想保持简单,并且在 HasDownloaded 中只有已下载文档的条目。因此,如果用户 1 下载了 abc、bbb 和 ccc,我仍然希望 ddd 和 eee 显示在结果表中,只是 id 为 NULL。但是 WHERE 子句只为我提供了哪些条目存在的值。
我不是 SQL 专家 - 有没有一个操作员可以在这里给我我想要的东西?我应该采取不同的方法吗?或者这是不可能的?
sql - 有趣的多对多sql连接
我有三个相关表“A(id,val)”,“B(id,val)”和一个值为“AB(aid,bid,val)”的链接表
我正在查询 B 以带回 A 值,例如:
每个 A 都有很多 B,每个 B 都有很多 A。
我崩溃的问题是需要过滤集合,以便查询仅在 AB.val 是任何给定 A/B 对的最大值时才返回行
例如,如果我有数据:
一个
乙
AB
我只想选择 AB 的第一行和最后一行,因为它们是每个 A 的最大值,然后能够查询 B.val = 'foo' 以仅返回第一行。我不知道如何仅限制 AB 表中的 max val 行。
我能得到的最好的是
但这并不完全奏效。首先,它只是感觉是错误的方法,其次,它返回了错误的投标值。也就是说,从子查询返回的出价不一定与 max(val) 来自同一行。我相信这是一个已知的分组问题,当未为排序规则或分组指定列时选择返回的值未定义。
我希望上面的一些内容是有道理的,在过去的几个小时里,我一直在把头撞在墙上,任何帮助都将不胜感激。谢谢。
(对于那些想知道的人,它的实际用途是用于字典后端,其中 A 是单词表,B 是音素表。AB 是带有“位置”列的单词表。查询是查找所有以结尾的单词一个指定的音素。(音素是一个词的声音,在用法上类似于国际音标)
vb.net - Linq to Sql:多个左外连接
我在弄清楚如何使用 LINQ to SQL 使用多个左外连接时遇到了一些麻烦。我了解如何使用一个左外连接。我正在使用 VB.NET。下面是我的 SQL 语法。
T-SQL
sql - 左外连接(三个表之间的连接)?
我有一个必须从中获取数据的主表。我有一个左外连接,其中字段将匹配 40% 的时间。然后我有另一个连接,我需要将表 A 中的数据与之匹配。
这是伪代码中的 SQL。此查询不起作用。
- 这是我想做但不起作用的部分。AND H.COL3 = A.STATE????
我正在使用 IBM DB2。
mysql - MySQL LEFT JOIN 问题 - 缺少 LEFT 列
我在用于显示自定义配置文件字段和任何(可选)相应值的 SQL 查询时遇到问题。
这是我正在使用的 SQL 查询:
我遇到的问题是,任何没有相应profile_values
记录的列都没有显示,当它们应该显示时,它们只是一个空值。
非常感谢!
python - Postgres - 如何返回缺失数据计数为 0 的行?
几年(2003-2008)我的数据分布不均(日期)。我想查询一组给定的开始和结束日期的数据,按 PostgreSQL 8.3 中任何支持的时间间隔(日、周、月、季度、年)对数据进行分组(http://www.postgresql.org/docs /8.3/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC)。
问题是一些查询在所需的时间内给出连续的结果,如下所示:
但其中一些错过了一些间隔,因为没有数据存在,就像这个:
所需的结果集是:
缺少条目的计数为 0。
I have seen earlier discussions on Stack Overflow but they don't solve my problem it seems, since my grouping period is one of (day, week, month, quarter, year) and decided on runtime by the application. So an approach like left join with a calendar table or sequence table will not help I guess.
My current solution to this is to fill in these gaps in Python (in a Turbogears App) using the calendar module.
Is there a better way to do this.
sql-server - SQL Server 中的 LEFT JOIN 与 LEFT OUTER JOIN
LEFT JOIN
和 和有什么不一样LEFT OUTER JOIN
?