问题标签 [relational-division]
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.
mysql - 你能解决这个简单的 SQL 查询吗?
假设它是一个销售照片相机的网站。这是我的实体(表格):
事情是在相机和功能之间我有一个多对多的关系,所以我有一个额外的表:
所以,查询很简单:
如何获得所有具有功能 1,2 和 3 的相机?
这就像构建位图索引。
可用于测试解决方案是否正常的数据
以下是查询和预期结果:
- 显示所有具有功能 1,2 和 3 的相机: C1
- 显示所有具有功能 1,2 和 4 的相机: C2
- 显示所有具有功能 1 和 2 的相机: C1、C2和C3
这是我所做的(它有效,但它真的很难看,不想使用它):
sql - Join between mapping (junction) table with specific cardinality
I have a simple question about the most efficient way to perform a particular join.
Take these three tables, real names have been changed to protect the innocent:
Table: animal
Table: tags
Mapping Table: animal_tag
I want to find all animals that are tagged as 'fluffy', 'brown', and 'cute'. That is to say that the animal must be tagged with all three. In reality, the number of required tags can vary, but should be irrelevant for this discussion. This is the query I came up with:
On a table with thousands 'animals' and and hundreds of 'tags', this query performs respectably ... 10s of milliseconds. However, when i look at the query plan (Apache Derby is the DB), the optimizer's estimated cost is pretty high (9945.12) and the plan pretty extensive. For a query this "simple" I usually try to get query plans with an estimated cost of single or double digits.
So my question is, is there a better way to perform this query? Seems like a simple query, but I've been stumped coming up with anything better.
sql-server - MSSQL Select with "vertical"-where
除了“垂直位置”之外,我真的不知道如何解释。
想象一下下表:
现在我想返回所有与标签 ID 相关的产品 ID:59,61。换句话说,两个标签 ID 都存在行的产品 ID 值。
所以我想返回 3418-7,而不是 4227-4
如何在 SQL 语句中尽可能简单地编写它?
这是我到目前为止的工作声明,但我觉得这可以以更聪明的方式完成:
mysql - 同一列上的多个条件
看过多篇关于此的帖子,但我看不到任何回答我的问题的帖子。
基本上我的数据库中有 3 个与成员及其分类/分类相关的表。
- 成员(定义成员列表和相关数据)
- member_taxonomy(使用partent id和枚举字段tax_type(CATEGORY、SUBCATEGORY、FACILITY)的组合定义类别、子类别和设施
- member_taxonomy_map(定义成员和 member_taxonomy 之间的映射)
我有一个成员页面,其中有许多选项可以通过指定一个或多个子类别和一个或多个设施来优化搜索。我一直在尝试使用查询在表上进行搜索:
但是,这将返回 0 行,这与在同一列上有多个 where 子句有关,但我无法弄清楚该查询的外观。每次优化搜索时(最多可以有 30 个不同的选项来优化搜索),我需要添加一个额外的 AND 子句,以便只返回具有这些映射的成员。
IN 子句将不起作用,因为这实际上会返回与这些特定值中的任何一个匹配的任何行,但这是不正确的,因为它需要与指定的值完全匹配。
希望有人可以在正确的方向上给我一些指示。
提前致谢。
更新
taxonomy_id 可能是 1 和 26。我可能需要包含 members_taxonomy_map 表的模式。
因此,任何未设置父 ID 的 tax_type 都是顶级类别。子类别有一个 parent_id CATEGORY。CLASSIFICATION 的 parent_id 可以是 CATEGORY,而 FACILITY 的 parent_id 可以是 CATEGORY。
因此,例如一个类别可以是住宿,子类别可以是酒店,设施可以是 wifi。因此,如果一个成员拥有所有这三个项目,他们将在映射表中拥有 3 个条目。我需要能够过滤这些,以便它构建查询以根据住宿类型进行过滤(即子类别 - 那些tax_type为CATEGORY但也有父ID的条目,然后在此分类中。查询可能为同一个成员返回多个条目,但我可以通过使用额外的 SQL 子句过滤掉这些条目来处理这个问题。
mysql - 一起使用 SQL IN AND
有没有办法同时使用 IN 和 AND ?问题是我想使用一列将我的查询与多个值匹配。
问题是我不能使用 IN 子句,因为它定义为值之间的 OR。
sql - 从映射行 SQL 中选择主要
我有一个引用一堆文章的表,该表包含这些文章的标签。像这样:
我想选择所有带有一组标签的 article_ids,比如 tag1、tag2、tag3,但文章也可以附加 tag4、tag5。
我知道这会起作用:
这也将是:
但我不确定这是最有效的方法。我也一直在玩下面的东西,但目前无法让它工作。
这似乎是其他人会遇到的常见问题,我想知道在这种情况下,INTERSECT 是否是最有效的查询。它适用于 PostgreSQL。
php - 在 (1, 2) (2, 1) 友谊场景中获得共同朋友的方法是什么?
我正在开发一个网站,其中当一个人将另一个人添加为朋友时,会创建 2 个条目。假设uid 1
添加uid 2
为朋友,以下行是在 MySQL 中创建的。
uid 2
成为朋友uid 3
:
uid 1
和之间有什么方法可以得到共同的朋友uid 2
?我正在使用没有 PDO 经验的 php 和 MySQL(目前)。
[编辑] 好的,所以我决定组织/规范化表格。该关系现在只生成 1 行。这使得表格:
mysql - SQL 在连接表上使用条件 AND 以确保至少匹配两个或多个值
我有一个名为的连接表languages_services
,它基本上连接了表services
和languages
.
我需要找到能够同时提供 ENGLISH(language_id=1)
和 ESPANOL的服务(language_id=2)
。
使用上面提供的数据,我想测试language_id=1 AND language_id=2
结果看起来像这样
显然它不会返回 service_id=2 的那个,因为它不为 Espanol 提供服务。
非常感谢您对此的任何提示!
sql - 如何在作文表上做交集
我有一个具有多对多关系的简单 SQL 关系模型。这是组成表
我想知道object1
一组object2
. 我的基本感觉是做这样的请求
如果我在集合中有 N 个 object2,我会做 NINTERSECT
但是,它看起来并不是很优化。你能帮助我吗 ?我不是真正的 SQL 专家。我想我可以使用 JOIN 来做到这一点。
样本
例子
- {
object2_id
设置 } => { 预期object1_id
} - { 1, 2 } => { 10 }
- { 1, 3 } => { 10, 11 }
- { 1, 2, 3 } => { 10 }
sql - 需要帮助提出查询以查找所有内容
好的,我正在使用出版商数据库,我需要提出的查询是查找在每家商店出售过副本的任何书籍的标题。
我正在处理的主要表格是title
,sales
和store
这是我的尝试
我有一个想法我应该做什么。我需要加入titles.title_id
,sales.title_id
然后检查是否sales.stor_name
等于stores.stor_name