问题标签 [multi-table]

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

sql-server - 使用来自多个表的数据的 SQL 插入

我有四个表:Messages、MessageCategory、MessageStatus 和 MessageLevel。

MessageCategory、MessageStatus 和 MessageLevel 都只有三个字段:Identity(主键)、Code 和 Description。Messages 指的是这三个字段,并且还有一些其他的数据字段,包括 Identity(主键)MessageText 和 Order。身份字段是自动递增的字段。

我现在需要编写一个 SQL 脚本来为所有四个表添加一些默认数据。问题是,我需要创建一个脚本,该脚本将发送给客户,然后客户将执行此脚本。我无法编写更智能的代码来完成整个更新。虽然三个表只是简单的插入语句,但 Messages 表让我有些头疼。

我不能删除任何索引,也不能假设它从 1 开始计算主键。

所以,作为一个例子,她的一些数据:

消息需要这样的东西:

不过,那是行不通的。那么,让这个工作的诀窍是什么?(保持代码可读...)

不幸的是,我无权访问其他数据库。我可以对其进行测试,但一旦它似乎有效,这只是发送并祈祷它有效的问题......

0 投票
5 回答
5639 浏览

django - Django 多表继承 VS 在模型中指定显式 OneToOne 关系

希望这一切都有意义:) 如有必要,我将通过评论进行澄清。另外,我正在尝试在这个问题中使用粗体文本,如果我(或你)发现它分散注意力,我会将其编辑掉。有了这个...

使用 django.contrib.auth 为我们提供了用户和组,以及其他我不能没有的有用的东西(比如基本消息传递)。

在我的应用程序中,我有几种不同类型的用户。一个用户只能是一种类型。这很容易由小组处理,但需要格外小心。但是,这些不同的用户在层次结构/关系中彼此相关。

让我们来看看这些用户:-

校长 - “顶级”用户

管理员 - 每个管理员向校长报告

协调员 - 每个协调员向管理员报告

除了这些之外,还有其他不直接相关的用户类型,但以后可能会相关。例如,“公司”是另一种类型的用户,可以有各种“产品”,产品可能由“协调者”监管。“买家”是另一种可能购买产品的用户。

现在所有这些用户都有各种其他属性,其中一些对所有类型的用户都是通用的,而另一些则只对一种用户类型不同。例如,所有类型的用户都必须有一个地址。另一方面,只有 Principal 用户属于“BranchOffice”。

上面提到的另一点是,用户只能是一种类型

该应用程序还需要跟踪谁创建和/或修改了委托人、管理员、协调员、公司、产品等。(这是用户模型的另外两个链接。)

在这种情况下,使用 Django 的多表继承是不是一个好主意,如下所示:-

或者我应该这样做: -

请记住,还有其他通过外键关联的用户类型,例如:-

我知道 Django 确实在幕后使用一对一的关系进行多表继承。我只是没有足够的资格来决定哪种方法更合理。

0 投票
1 回答
887 浏览

mysql - 使用 Doctrine 在 MySQL 数据库上删除多表的语法是什么?

使用Doctrine,我试图根据从多个表中收集的数据删除单个表中的记录。

“companies_groups”是将“公司”链接到“组”的关联表。我想删除此表中链接到特定公司的所有记录,但只有链接到“公共”组的“companies_groups”记录才会被删除。

如果我用纯 SQL 编写它,它看起来像这样:

教义中的等价物是什么?我一直在挣扎和尝试一个小时左右。

目前我有这个:

(我的 Doctrine 模型是“companies_groups”表的“Company_group”和“groups”表的“Group”)

这会产生这个 SQL:

您可以看到生成的 SQL 在 DELETE 和 FROM 之间缺少“companies_groups”,并且限定符被删除(意味着“id”将不明确)。

让我知道我是否可以提供任何有用的其他信息。

0 投票
2 回答
942 浏览

django - Django Admin中具有多表继承的ValueError

我创建了两个继承模型条目的新类:

通过 admin.site.register 将这些新模型添加到管理员后,我在尝试通过管理员创建评论或折扣时收到 ValueError。添加条目工作正常。

错误信息:

/admin/reviews/discount/add/ 处的 ValueError 无法分配“''”:“Discount.discount”必须是“Discount”实例。请求方法:GET 请求 URL: http: //127.0.0.1 :8000/admin/reviews/discount/add/ 异常类型:ValueError 异常值:
无法分配“''”:“Discount.discount”必须是“折扣”实例。异常位置:/Library/Python/2.6/site-packages/django/db/models/fields/related.py in set,第 211 行 Python 可执行文件:/usr/bin/python Python 版本:2.6.1

0 投票
2 回答
380 浏览

php - PHP SQL:匹配2个表之间的相应数据,而不过滤掉第一个表中的数据

我有 2 张桌子。为简单起见,“u”具有以下列
userid
divisionid

'd' 有以下内容:
Divisionid
名称

我没有创建这个表,否则我不会有这个问题。u.DIVISION可以为 NULL。d.DIVISION不能

运行以下命令会创建适当的数据,但它也会过滤掉每个具有 NULL 的用户 ID。无论如何,是否仍然显示所有用户 ID,而不管他们的部门 ID 是什么,如果部门 ID 不为空,则显示部门的名称?

“选择用户 ID,d.NAME
FROM u,d
WHERE u.divisionid = d.divisionid
ORDER BY userid”

0 投票
1 回答
287 浏览

nhibernate - 使用 NHibernate 从多个表映射实体

我希望您可以通过以下问题帮助一些 NHibernate 新手。假设我们有两个表:Page 和 WorkPage。Page table 包含未版本化的数据,WorkPage 包含同一 Page 的版本化数据,即 Page 和 WorkPage 之间存在一对多的关系。

在代码中,我们有一个实体,其中包含 Page 和 WorkPage 表中的所有属性,而且这些属性是相当的——它们没有分组到版本化数据和非版本化数据的任何子实体中。

我如何使用 NHibernate 将这样的实体映射到这些表?

0 投票
2 回答
216 浏览

mysql - MySQL(MyISAM) - 将字段更新为来自不同表的两个字段中的最大值

我有两个表,t1每个表t2有两列 -id_userage.
如果. t1.age_ t1.age_ t2.age_ t1.age_t2

更新前:

更新后:

0 投票
3 回答
128 浏览

sql - 多表查询

我有四张桌子:

  • 人物
  • arena_team
  • arena_table_member
  • arena_team_stats。

字符表有 guid,名称

arena_team 表有 arenateamid, name, type

arena_table_member 表有 guid(这与字符表中的相同), arenateamid

arena_team_stats 表有 arenateamid、rating、wins、wins2、played

如何获取角色所在的竞技场团队列表?我试过:

但它会返回 arena_team 表中的所有竞技场团队。

0 投票
2 回答
854 浏览

asp.net - 如何从 BLL 返回多表连接值

这个问题是关于我使用 DAL-BLL 架构为我的期末学校项目创建的 ASP.NET Web 服务。

我有一个存储过程,它是一个带有 2 个表的内部联接的选择查询。因此存储过程返回多表值。我的 DAL tableAdapter 方法之一访问此存储过程。如何检索 BLL 中的返回值?我是否必须创建一个类似于应该由存储过程返回的类结构?还是有直接的方法来实现相同的目标?非常感谢帮助。如果有人需要代码小程序以更好地理解,请告诉我。谢谢

以下是更多信息:我在 DAL 中使用 SQL 数据集 (.xsd)。所以我有一个名为“Insurance”的数据表,它有一个 tableAdapter。适配器中的一个查询引用了具有内部联接的存储过程。所以我的SP看起来像:

所以这个 SP 返回一个数据表,它将是内部连接中 2 个表的组合。如果我错了,请纠正我。

现在在我的 BLL 中,我有:

其中 insAdapter 是 insuranceTableAdapter 的一个实例

这会导致执行错误。我可以成功执行 SP,所以我认为问题只是我试图从 BLL 返回错误的数据表。请帮我解决这个问题。

0 投票
2 回答
958 浏览

sql - SQL:根据时间戳使用其他表中的值进行更新

我有以下问题:我想用另一个表 B 的列“SOURCE_VALUE”中的值更新表 A 的列“UPDATE_VALUE”。两个表都有一个时间戳列,表 A 中应该更新的值应该是具有最高时间戳的表 B 行之一小于/等于表 A 行的时间戳。

例如:

表 A:

表 B:

因此,在表 A 的第 1 行中,我想要表 B 的 VAL_1,因为该行的时间戳是表 B 的最高值,小于/等于表 A 中行的时间戳。对于表 AI 的第 2 行,需要第 4 行表 B 等等。完整的结果应如下所示:

表 A:

我正在使用 SQLite 3,但对 sql-query 的任何提示表示赞赏。

感谢您的时间和帮助,