问题标签 [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.

0 投票
2 回答
1229 浏览

sql - id 上的 SQLite 自连接中的错误?

我正在尝试根据它们的 id 生成行的成对组合。SQLite 版本是 3.5.9。表格内容如下:

表架构为:

然后是 ids 上的自加入:

这显然不是我想要的。现在,更改 t2 和 t1 的顺序会产生正确的结果:

现在,对于另一个实验,我尝试在除行 ID 之外的数字列上进行组合。另一方面,这在两种情况下都给出了正确的结果。

我希望有人可以深入了解这里发生的事情。据我了解,它要么是 SQLite 中的错误,要么是我不知道的 SQL 的某些微妙方面。

谢谢,

0 投票
2 回答
205 浏览

mysql - MySQL 连接问题

以下查询为我返回了奇怪的结果:

我在如下表结构上查询这个:

(仅与 相关的数据Statistics.StatisticID = 8

投票

意见

评论

现在,如果我运行此查询,我会得到以下结果集:

我知道 5 来自哪里——评论的数量——如果我把评论声明拿出来,这很有效。任何人都可以调试它,因为这超出了我的能力范围(我对 SQL 比较陌生)。

谢谢,罗斯

0 投票
2 回答
514 浏览

mysql - 在 MySQL 中使用“USING”而不是“ON”有什么缺点吗?

MySQL的两个片段:

对比

鉴于两个表都有一个id字段,使用第二个版本有什么缺点。这不仅仅是懒惰 - 使用 USING 的版本对我来说似乎更清晰。

(请不要提及别名 - 我想知道是否有任何理由偏爱一种条件结构而不是另一种)

0 投票
2 回答
8769 浏览

.net - 连接 .NET DataSet 中的表以在 DataGridView 中显示

我在 .NET 的数据集中有两个表。我想加入他们的 ID 列。然后我希望 DataGridView 显示第一个表中的两列和第二个表中的一列。

如果它更容易,两个表之间的关系是一对一的。

可以做到吗?

0 投票
4 回答
229 浏览

mysql - Joins 和 where 条件

我有以下(缩短的查询):

现在,在子句中都没有FlagCount = 0COUNT(Flags.FlagType)工作。WHERE我考虑过使用 aSET但我不确定如何将它添加到查询中。有任何想法吗?

谢谢,

0 投票
2 回答
7983 浏览

mysql - MYSQL - STRAIGHT_JOIN 在这段代码中做了什么?

这段代码做了什么STRAIGHT_JOIN

0 投票
1 回答
4390 浏览

mysql - MySQL 多表连接

我需要修改以下 MySQL 语句以包含来自第三个表的信息......但我很讨厌连接。

我还需要包括projects.project_name通过匹配searches.project_id来检索projects.id.

0 投票
3 回答
136 浏览

mysql - 需要帮助加入表

我有一个将表导出到 CSV 的函数,并在查询中设置将导出哪些字段。

这是查询:

字段venue_id是在另一个表(venues)中引用的场地的id

所以志愿者_2009.venue_id =venues.id

当我打开 CSV 文件时,它会显示我理解的场地 ID,但我需要帮助修改查询以将场地名称 (venues.venue_name) 放入 CSV 文件中。

任何帮助表示赞赏。

0 投票
1 回答
2746 浏览

mysql - 如何有效地在 MySQL 中找到重复的 blob 行?

我有一张表格

它在 blob 列中有大约 160,000 行和大约 2GB 的数据(平均每个 blob 14kb)。另一个表具有该表的外键。

大约有 3000 个斑点是相同的。所以我想要的是一个查询,它会给我一个重新映射表,允许我删除重复项。

天真的方法在 30-40k 行上花费了大约一个小时:

由于其他原因,我碰巧有一个具有 blob 大小的表:

通过为 fk 和另一个为 sz 建立索引,直接查询大约需要 24 秒,有 50k 行:

但是,这是对 da(数据表)进行全表扫描。鉴于命中率应该相当低,我认为索引扫描会更好。考虑到这一点,添加了第 3 个数据副本作为第 5 次连接以获得该数据,并丢失了大约 3 秒。

好的,问题是:我会比第二个选择好得多吗?如果是这样,怎么做?

一个推论是:如果我有一个表,其中键列的使用非常频繁,但其余的应该很少使用,那么我最好添加该表的另一个连接以鼓励索引扫描而不是完整的表扫描?


#mysql@irc.freenode.net 上的 Xgc 指出,添加一个实用程序表(如大小但具有唯一约束)fk可能会有很大帮助。触发器带来一些乐趣,而不会让它保持最新状态甚至还不错。

0 投票
24 回答
198872 浏览

sql - SQL select join:是否可以为所有列添加前缀“prefix.*”?

我想知道这在 SQL 中是否可行。假设您有两个表 A 和 B,并且您在表 A 上进行选择并在表 B 上连接:

如果表 A 有列 'a_id'、'name' 和 'some_id',而表 B 有 'b_id'、'name' 和 'some_id',则查询将返回列 'a_id'、'name'、'some_id '、'b_id'、'name'、'some_id'。有没有办法在不单独列出每一列的情况下为表 B 的列名添加前缀?相当于:

但是,如前所述,没有列出每一列,所以类似于:

基本上要说的是,“在 b.* 返回的每一列前面加上 'something'”。这是可能的还是我不走运?

编辑

关于不使用SELECT *等的建议是有效的建议,但与我的上下文无关,所以请坚持手头的问题——是否可以为 a 的所有列名添加前缀(在 SQL 查询中指定的常量)表中的连接?

我的最终目标是能够通过SELECT *连接对两个表执行 a 操作,并且能够从我在结果集中获得的列的名称中分辨出哪些列来自表 A,哪些列来自表 B。同样,我不想单独列出列,我需要能够执行SELECT *.