问题标签 [multiple-tables]

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 回答
117 浏览

mysql - 使用其他表中的 WHERE 计算大多数出现次数

我有一个电影数据库来组织我的收藏,但我也用它来了解更多的 mySQL。在发展过程中,我发现了颠簸(很多),现在我的问题是:

ACTORS

  • id_actor
  • 姓名
  • 性别

MOVIEACTORES

  • id_movieactors
  • id_movie
  • id_actor

我想计算拥有最多电影的演员的前 5 名(前 10 名、前 20 名或其他!),然后是拥有最多电影的女演员的前 5 名!

我有这个:

但是这个代码并没有区分演员和女演员。我觉得解决方案可能很简单,但以我的知识,我现在遥不可及。任何人?

0 投票
1 回答
254 浏览

mysql - 如何选择多表结构以获得最快的查询响应

我有一个数据库,我在其中按地理位置列出事件(数据库中目前大约有 100000 个事件)。目前它处于一个很好的规范化模式中:表中的事件tevent有一个外键fkvenue,它指向表tvenue中具有外键的场所fkcity,依此类推到tregionand tcountry

因此,查找具有最多事件的国家/地区的查询相当复杂,有不少于三个内部连接:
select r.fkcountry,count(distinct e.id) from tevent e inner join tvenue v on e.fkvenue=v.id inner join tcity cy on v.fkcity=cy.id inner join tregion r on cy.fkregion=r.id group by r.fkcountry order by count(distinct e.id) desc

我正在努力寻找加快速度的方法,我认为直接按国家/地区绘制事件地图可能会有所帮助。我创建了一个 map table teventcountry,使用以下更简单的结果语法:
select ec.fkcountry,count(distinct e.id) from tevent e inner join teventcountry ec on ec.fkevent=e.id group by ec.fkcountry order by count(distinct e.id) desc

令我惊讶的是,这产生了完全相反的效果:新查询花费的时间几乎是旧的、更复杂的查询的五倍。

有人可以解释一下,或者指出一个很好的资源来帮助我了解多表查询的速度吗?或者甚至告诉我这类事情的首选模式?

(在有人问之前,我已经注意在运行之间进行“重置查询缓存”,以使计时结果有效,是的,我已经正确索引了所有内容!!!!)

谢谢

大卫

0 投票
1 回答
382 浏览

entity-framework - 实体框架将多个表映射到一个实体。并发检查

我将一个实体映射到两个表。第一个表有时间戳字段。我想要什么 - 如果我修改第一个表中的字段,它应该检查第一个表是否与时间戳列并发。第二个表不应该更新。如果我修改第二个表,它应该只更新第二个表。第一个表必须保持不变。

如果我为架构中的时间戳字段设置“Concurrecny=None”,这是可行的。如果我为时间戳字段设置“Concurrecny=Fixed”并更改第二个表的属性,它会使用当前值更新第一个表。

如何仅对这两个表之一进行并发检查?

0 投票
4 回答
2784 浏览

.net - 多个oracle查询问题

我正在尝试从 .NET 页面运行查询,但我似乎在处理多个查询时遇到了一些问题。

我的查询与此类似

SELECT * FROM table1; SELECT * from table2

但是从 .Net 页面执行此操作时,我似乎遇到了无效字符错误。它在 SQL 开发人员中运行良好,但只有在我将其放入我的 .NET 页面时才会失败。

我已将BEGINand添加END到查询中,因为某些网站建议您需要它来运行多个查询,但随后出现以下错误

ORA-06550:第 1 行,第 7 列:PLS-00428:此 SELECT 语句中应有一个 INTO 子句

任何人都可以对此有所了解吗?

提前致谢!

编辑

这是一些代码

0 投票
5 回答
8352 浏览

sql - 将 MAX 与多个表一起使用

我有四张桌子:产品、电脑、笔记本电脑和打印机。

我需要的是找到价格最高的产品(PC、笔记本电脑或打印机)的型号。这不适用于 case 语句,因为如果两个型号的价格最高,则两者都需要显示,并且使用 case 将只选择一个然后退出 case 语句。我想使用 UNION 运算符来执行此操作,但我不知道该怎么做。这是我到目前为止所拥有的:

但这是不正确的语法,我不知道为什么。有任何想法吗?

0 投票
8 回答
27867 浏览

mysql - MySQL:如何使用单个查询删除多个表?

我想轻松删除多个表,而无需在删除查询中实际列出表名,并且要删除的表具有前缀“wp_”

0 投票
1 回答
44 浏览

.net - 从 Oracle 返回的命名表

我在 .NET 中使用 Oracle 数据库来获取从过程返回的多个表(作为多个 Out 游标)。此数据正在插入到DataSet. 我遇到的问题是这些表被命名为Table, Table1,Table2等。有没有办法(通过 Oracle 数据适配器或其他方式)在这些表进入之前DataSet重命名这些表?

0 投票
2 回答
85 浏览

sql - 数据库表;将它们分散开来,还是将它们一起归零?

关于数据库设计的快速问题;

鉴于我将User数据存储在数据库中,我可以识别与用户关联的两种(看似)独立的数据形式;帐户数据个人资料数据

大多数配置文件数据是可选的,并且是不必要的(可以,而且经常是NULL),而帐户数据是用户不可或缺的,他们使用服务的能力(很少或没有记录可以/将是NULL

将其拆分为两个表有什么好处1-to-1吗?仅从设计的角度来看,这似乎是合乎逻辑的,但是在谈论性能时,这是一种常见的(好的)做法吗?

0 投票
1 回答
140 浏览

mysql - 需要使用多个表中的条件从多个表中获取数据

我对特定的 SQL 查询有点打嗝。我需要连接来自两个表的数据,同时还通过第三个表来限制数据(但不一定要抓取它)。表格如下:

我需要查找特定组的所有成员的所有费用,但我还想从 MEMBERS 表中获取名字和姓氏。到目前为止,我提出的查询是:

我也试过:

…但两者都没有返回我需要的数据。我确定我想太多了,但我无法终生获得正确的价值观。我不断得到似乎是笛卡尔积的东西——无论如何,它显然返回了太多的行和错误的数据。

0 投票
1 回答
4001 浏览

php - 从两个表中选择,每个表中的不同列等于 $id ORDER BY 公共列(PHP/MySQL)

我正在尝试从两个表和 ORDER BY 日期(他们都有的列)中选择。一个表(tableA)有一个名为“A”的列,另一个表(tableB)有一个名为“B”的列,我使用array_key_exists()来区分两者(如果“A”键存在,我运行数组通过FunctionA(),如果“B”键存在,我通过 FunctionB()) 运行数组。我只需要 20 个最新的(日期方面的)条目。我需要 SQL 查询来完成此操作。

我已经知道回复将是“如果它们的结构相似,那么你应该只使用一个表”,但我不想这样做,因为 tableA 与 tableB 截然不同(tableA 中有更多列),并且使用单个表来存储数据会导致为 tableB 格式化的条目有很多空列,更不用说由于 tableB 不需要 tableA 的大多数列,这将是一个非常难看的表格式)。

我只想以有序(按日期)的方式并在一个流中显示两个表中的数据。

顺便说一下,我需要选择 WHERE tableA.poster_id = $id 和 tableB.receiver_id = $id。

解决方案:

我正在更新这个,以防万一遇到同样困境的其他人出现。在实现了@Erik A. Brandstadmoen 慷慨地给我的 SQL 查询之后,这基本上就是我的代码最终结果: