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

0 投票
1 回答
850 浏览

optimization - 如何优化这个涉及两个左连接的 MySQL 查询?

我无法弄清楚为什么我的查询变慢了。它归结为四个表:团队、球员、设备和元数据。玩家和设备中的记录对团队有 FK,使团队成为玩家和设备的父级。并且所有这三个表的行在元数据中都有一条记录,其中存储了创建日期、创建者用户 ID 等内容。

我想一次检索的是属于特定团队的任何球员和设备记录,按创建日期顺序排列。我从元数据表开始,通过 metadata_id FK 离开加入球员和设备表,但是当我尝试过滤 SELECT 以仅检索某个团队的记录时,当有很多行时,查询会大大减慢。

这是查询:

您需要添加很多行才能真正看到减速,每个表大约 10,000 行。我不明白的是,如果我只在一个表上的 where 子句中进行过滤,为什么它真的很快,例如:“... AND player.team_id = 1”但是当我添加另一个以使其成为“.. . AND (player.team_id = 1 OR equipment.team_id = 1)" 这需要很长很长的时间。

这是表和数据类型。请注意,似乎有很大帮助的一件事,但不是全部,是元数据_id 和团队_id 的播放器和设备上的组合键。

请注意,我意识到我可以通过对给定团队 id 的玩家和设备执行两个 SELECTS 的 UNION 来轻松加快这一速度,但是我使用的 ORM 本身并不支持 UNION,所以我更愿意尝试看看如果我可以优化此查询。我也只是很好奇。

0 投票
5 回答
1007 浏览

mysql - MySQL 复杂的 JOIN 问题 - 无法获得正确的结果

我有两个表:Vehicles(Id, VIN) 和 Images(Id, VehicleId, Name, Default)。我需要选择车辆 VIN 及其默认图片以显示在表格中。我遇到的问题是,如果未设置默认图片,我仍然想选择要显示的图像(如果存在)。如果不存在图像,则显然还必须显示车辆信息。这是我到目前为止所拥有的:

此语句将显示具有默认图像的车辆,但如果未设置默认值,则不会显示任何内容。我需要改变什么?

编辑*

为了更好地描述我的问题,这里有一些测试数据:

即使车辆 2 没有默认值,我也希望它选择要显示的图像。车辆 3 也根本没有图像,但我仍然需要它在没有图像的情况下显示在表格中。车辆 1 将显示其默认图像,因为它已设置。我希望这能解决问题。

0 投票
4 回答
455 浏览

sql - SQL 查询:连接来自两个单独行的两个字段

我有以下两个表:

应该很清楚 FID 3 = 姓氏,FID 4 = 名字。

我想加入这两个表,所以我最终会得到这样的结果:

或者……或者……

那里有任何 SQL 大师吗?

这是我到目前为止所拥有的:

但这给了我这个:

任何人?

0 投票
2 回答
269 浏览

mysql - MySQL复杂查询没有产生正确的结果

我有两个表:Vehicles(Id, VIN) 和 Images(Id, VehicleId, Name, Default)。我需要选择车辆 VIN 及其默认图片以显示在表格中。我遇到的问题是,如果未设置默认图片,我仍然想选择要显示的图像(如果存在)。如果不存在图像,则显然还必须显示车辆信息。这是我到目前为止所拥有的:

此语句将显示具有默认图像的车辆,但如果未设置默认值,则不会显示任何内容。

为了更好地描述我的问题,这里有一些测试数据:

即使车辆 2 没有默认值,我也希望它选择要显示的图像。车辆 3 也根本没有图像,但我仍然需要它在没有图像的情况下显示在表格中。车辆 1 将显示其默认图像,因为它已设置。我希望这能解决问题。

0 投票
2 回答
521 浏览

sql - SubSonic 2.2 左连接错误

我知道这可能已经得到解答,但 SubSonic 2.2 在尝试执行左连接时会导致 SQL 提供程序出错(左内连接到亚音速)

而不是像创建 SQL

它创建:

并将此错误视为无效的 SQL 代码。

有解决办法吗?正如我认为你不再支持它了?

0 投票
1 回答
185 浏览

php - MySQL创建视图问题,

我使用视图作为表来连接 3 个表上的数据:

但是,我遇到了两个问题:

  • 仅从 forum_categories 中提取一条记录进行链接
  • 我无法将 forum_answer.qtitle 与 forum_question.topic 相关联

请指教 :)

谢谢。

0 投票
5 回答
7912 浏览

sql - SQL LEFT 外连接只有一些从右边开始的行?

我有两个表TABLE_A,并将TABLE_B连接列作为员工编号EMPNO

我想做一个正常的左外连接。但是,TABLE_B某些记录是软删除的 ( status='D'),我希望将这些记录包括在内。澄清一下,TABLE_B可能有活动记录(状态= null/a/anything)以及已删除的记录,在这种情况下,我不希望该员工出现在我的结果中。但是,如果只有员工的已删除记录,TABLE_B我希望该员工包含在结果中。我希望我能明确我的要求。(我可以做一个冗长的 qrslt 类型的事情并得到我想要的,但我认为必须有一种更优化的方式来使用连接语法来做到这一点)。将不胜感激任何建议(即使没有加入)。他的新手正在尝试以下查询,但没有得到预期的结果:

非常感谢任何帮助。

0 投票
3 回答
785 浏览

php - 复杂的SQL查询,涉及三张表和变量表名

我有两个不同的表,我需要从中提取数据

具有以下列

和另一个具有变量名称的表,例如

其中有以下列:

例如:

最后,我得到了以下 POST 数据


这是我需要做的: 获取 POST 数据区域中的任何博客的名称。更简洁地说,我需要在同一个表上选择option_valueof ,并且表名是从's 列表(来自 table )创建的,并在末尾附加了 '_options'。option_name 'blog_name'option_name='state'option_value="$_POST['state']'blog_idblogs

天哪,我什至不知道我正在尝试做的事情是否可以用人的嘴说出来。

无论如何,我认为 stackoverflow 是问的地方,如果在任何地方。

让我知道是否可以为您澄清任何事情,我会尽力的。

顺便说一下,这是因为我使用的是 Wordpress MU,并且选择在各种博客的动态创建的表格上放置一些额外的设置。

0 投票
3 回答
136 浏览

mysql - MySQL Query 与某种类型的连接?没有把握

如果有人也可以推荐一本学习 mySQL 的好书,那就太好了:)。

我有两个表,tagscodes_tags

我要做的是从'tags'中选择名称,以及'codes_tags'中有多少个tag_id,并按该计数排序。如果code_tags 中没有该tag_id 的记录,'count' 应该等于0 或NULL(最好是0)。

这是我到目前为止最接近的:

它似乎做了我想要的,但是当它应该返回 30 时它只返回四行。

我在这里做错了什么?谢谢。

0 投票
1 回答
6463 浏览

nhibernate - NHibernate 2.1:在带有别名的子查询上左连接(ICriteria)

我基本上是在尝试使用 NHibernate ICriteria 接口创建此查询:

SomeTable 1:n 另一个表

SomeTable有列:PrimaryKey、NonAggregateColumn
AnotherTable有列:PrimaryKey、ForeignKey、AnotherNonAggregate、YetAnotherNonAggregate

很明显,使用投影子查询效率不高,因为 SQL 必须扫描表两次(每个聚合一个投影子查询)。

使用多个 GROUP BY 也不是很有效。

有解决方案吗?到目前为止,我一直在使用原始 SQL,但这对于复杂的报告来说变得很笨拙。