问题标签 [inner-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-server - 无法在 SQL Server 2008 上绑定多部分标识符
我有 2 张桌子
requests
( ID
, company_id
, amount
)
companies
( ID
, name
)
带有 FK 约束 ( requests.company_id
-> companies.id
)
requests.company
可NULL
如果没有指定公司,我需要获取所有请求并替换company_id
为适当的公司name
或将其留空。
我有下一个查询:
并且它工作正常,直到 NULL 进入company
字段。
我试着下一步做:
但是得到了
无法绑定多部分标识符“R.company_id”
ON
子句转换中的字段也有同样的错误。我究竟做错了什么?
mysql - MySQL - 从链接表中获取元素,但只有那些元素
我从链接表中选择并过滤掉多余的结果时遇到问题。
出版物通过package_publications表属于包。
例如,我知道我的出版物的 id 是 11 和 47。我想返回一个只包含这些出版物的包。
现在,如果我进行连接并在明显的内部连接之后执行类似操作,这将简单地返回在package_publications链接表where publications.id IN (11, 47)
中具有这些值之一的所有包。
我想匹配只有两个(或更多 - 它不限于两个)的包。实际上,当我想要 AND 但我不知道如何以 SQL 方式处理它时,我正在使用 OR。
sql - 在 SQL 内部联接中“跳过”表
我的意思是,如果我有以下架构:
如果我想检索B_data
和C_data
使用此处描述的关系,以下之间是否有任何区别:
和:
我怀疑大多数数据库会将任一查询优化为相同,但是在某些情况下,外键约束tableA
会使通过tableA
更有效地连接吗?是否存在这些查询可能产生不同结果的情况?
linq - 如何在 Linq 中过滤子集合
我需要使用单个 linq 查询过滤 linq 中实体的子元素。这可能吗?
假设我有两个相关的表。诗句和诗句翻译。LINQ to SQL 创建的实体是这样的,我有一个 Verse 对象,其中包含一个子对象,该子对象是 VerseTranslation 的集合。
现在,如果我有以下 linq 查询
我得到一个 id 为 1 的 Verses 集合,每个 verse 对象包含来自 VerseTranslations 的所有子对象。
我还想做的是过滤 Verse Translations 的子列表。
到目前为止,我能够想出的唯一方法是使用新的匿名类型或其他方式。如下
上面的代码有效,但我必须为它声明一个新类。有没有办法以这样的方式做到这一点,即子表的过滤可以合并到第一个 linq 查询中,这样就不必声明新的类。
问候, MAC
hibernate - 休眠多对一的hql查询,当内部连接获取属性未关联时
我在 hbm.xml 中设置了这样的多对一关联:
我正在使用仪器来进行真正的延迟加载。
但是,当我使用对另一个表的内部连接提取运行 hql 查询时,应该包含作为另一个表的值的对象的属性保留为空。即使我可以看到另一个表的值对象是由休眠创建的。
有人对这个问题有任何见解吗?
更新:
sql - SQL 对单个表执行 INNER JOIN 的替代方法
我有一个大表(TokenFrequency),其中有数百万行。TokenFrequency 表的结构如下:
表 - TokenFrequency
- id - int,主键
- 源 - 整数,外键
- 令牌 - 字符
- 计数 - 整数
我的目标是选择其中两个来源具有相同标记的所有行。例如,如果我的表看起来像这样:
id --- source --- token --- count
1 ------ 1 --------- dog ------- 1
2 ------ 2 --- ------ 猫 -------- 2
3 ------ 3 --------- 猫 -------- 2
4 ------ 4 --------- 猪 -------- 5
5 ------ 5 --------- 动物园 ------- 1
6 --- --- 5 --------- 猫 -------- 1
7 ------ 5 --------- 猪 -------- 1
我想要一个 SQL 查询来给我源 1、源 2 和计数的总和。例如:
source1 --- source2 --- token --- count
---- 2 ----------- 3 --------- cat -------- 4
- --- 2 ----------- 5 --------- 猫 -------- 3
---- 3 ---------- - 5 --------- 猫 -------- 3
---- 4 ----------- 5 --------- 猪 -- ------ 6
我有一个看起来像这样的查询:
此查询工作正常,但我遇到的问题是:
- 我有一个包含数百万行的 TokenFrequency 表,因此需要更快的替代方法来获得此结果。
- 我当前的查询是重复的。例如它的选择:
source1=2, source2=3, token=cat, count=4
source1=3, source2=2, token=cat, count=4
这不是太大的问题,但如果有办法消除这些并反过来获得速度增加,那么这将非常有用
我遇到的主要问题是当前查询的查询速度需要数小时才能完成。我认为自己的表上的 INNER JOIN 是问题所在。我确信必须有一种方法来消除内部连接并仅使用 TokenFrequency 表的一个实例来获得类似的结果。我提到的第二个问题也可能会促进查询速度的提高。
我需要一种方法来重组这个查询,以更快、更有效的方式提供相同的结果。
谢谢。
linq-to-sql - 将存储过程转换为 Linq2SQL(计数、最大值、组、排序依据)
我有两张桌子 (1:N)
和 -
Master.idMaster 和 lnk.idMaster 之间的链接
我有一个 SQL 查询:
我需要将此 T-SQL 查询转换为 Linq-to-SQL 语句,最好在 C# 中
php - 加入作为多个 OR 的替代方案
我有两个具有以下结构的表:
我想选择仅由 user 的朋友发布的帖子x
。我最初的计划是使用以下代码:
但是,这似乎不起作用。(我得到了 x 完成的所有帖子,完成了 X 的朋友完成的所有帖子。我能想到的唯一选择是使用 OR 的(可能很长的)字符串 - 如
任何替代解决方案?谢谢。
sql - 外连接或动态查询,哪个是最好的方法?
我有以下表格(我已经简化了表格中包含的数据)。
RateExtra 仅包含 3 个值,键的 1、2 和 3 以及名称的汽油附加费、管理费和 GST。
这对于目前的目的来说工作正常。正在显示具有匹配记录的值列表,并且仅针对 rate_extra_name 查询 RateExtra。
所以我可能有以下结果:
- Ratetable1, 1, 汽油附加费
- Ratetable1, 2, 管理费
- Ratetable2, 3, 汽油附加费
- Ratetable4, 4, GST
- Ratetable6, 5, 汽油附加费
我被要求对此进行修改,以便现在返回的每条记录都包含 RateExtra 表中每个值的记录。如果没有匹配的记录,那么我的 RateTableExtra 表中的数据应该返回为 NULL。所以我的数据应该返回为:
- Ratetable1, 1, 汽油附加费
- Ratetable1, 2, 管理费
- Ratetable1,NULL,GST
- Ratetable2, 3, 汽油附加费
- Ratetable2,NULL,管理费
- Ratetable2,NULL,消费税
- Ratetable4, NULL, PetrolSurcharge
- Ratetable4,NULL,管理费
- Ratetable4, 4, GST
- Ratetable6, 5, 汽油附加费
- Ratetable6, NULL, ManagementFee
- Ratetable6, NULL, GST
我已经尝试过 OUTER 连接,但我假设它们似乎不起作用,因为 RateExtra 数据链接到将返回 null 的 RateTableExtra。我现在正在考虑创建一个动态查询,该查询将获取我的原始结果集,对其进行迭代检查 rate_extra_id,如果它不在结果集中,则在我需要的带有 NULL 数据的结果中附加一个新行。我假设这会起作用,但我有一种感觉,它会成为性能的杀手。
有没有更好的方法来做到这一点?希望有人可以提供帮助,将不胜感激。
join - 将一个表两次右连接到第二个表,每个别名内部连接到第三个表的两个别名
也许我走错了路。这是我正在尝试做的事情和我的问题。
我有 3 张桌子。assets(计算机、网络设备等) ports(计算机上的端口、网络设备等) port_connections(具有 port_id_a 和 port_id_b 字段并将每个端口和每个资产链接在一起)
它实际上只是一种跟踪办公楼中的 vlan 和网络设备/计算机的方法。
我正在使用最新版本的火鸟,使用方言 3。我假设这不是火鸟问题,而只是我的 sql 的问题。
我知道这一定是可能的,因为我可以通过正确的连接(端口到 port_connections)来完成它,并在 WHERE 子句中进行其他连接。问题是当我将资产表连接到端口表时,正确的连接会丢失。
编辑:这是我正在使用的最新查询,因为旧的查询在这一点上是无用的。我对这个最新查询的问题是它似乎将通过 port_connections 表链接的项目拉了两次。所以我会得到正确的 port_connections 记录,然后我会得到一个重复的记录,只有一个没有 port_connection 的端口。我需要以某种方式摆脱这个后来的记录,但仍然保留没有 port_connection 记录的其他端口记录。
表:资产:
端口连接
港口
编辑:解决方法是将 connection_id 移动到端口表中,然后此查询执行我想要的操作。