我有4个表,USER(ID,USER_ID,NAME),USER_2(ID,USER_ID,EMAIL)
和USER_CLASS_MAP(ID,USER_ID,CLASS_ID)和
CLASS(ID,NAME)
USER_CLASS_MAP
基本上是要映射USER
和CLASS
MANY-MANY关系。
需要发送属于特定类的所有用户的所有详细信息。我有如下非工作代码 - 任何想法,我可能做错了什么,或者有没有其他有效的方法来实现相同的?
我指的是(SQL内部联接与3个表?)多个表的内部联接,但这里的问题是,我不是单个用户针对给定的CLASS_ID,而是从
USER_CLASS_MAP
获得USER_ID
列表。
SELECT USER_ID from USER_CLASS_MAP where CLASS_ID=:classID
这是我目前拥有的:
SELECT USER1.NAME, USER2.EMAIL
INNER JOIN CLASS_USER_MAP as cmap
ON cmap.USER_ID = USER1.ID
INNER JOIN CLASS_USER_MAP as cmap
ON cmap.USER_ID = USER2.ID
这里的问题是.ID基本上是一个列表!
EXAMPLE:
USER:
(id1, user1, rob)
(id2, user2, bob)
USER_2:
(id1, user1, rob@something.something)
(id2, user2, bob@something.something)
USER_CLASS_MAP:
(id1, user1, class1)
(id2, user2, class1)
CLASS:
(class1, Biology)
(class2, Chemistry)
Given:
Get all User Details for class with classId = class1
Output:
[
{USER_ID=user1, NAME=rob, EMAIL=rob@something.something},
{USER_ID=user2, NAME=bob, EMAIL=bob@something.something}
]
您的示例数据:
create table "USER"(ID, USER_ID, NAME) as (
select 'id1', 'user1', 'rob' from dual union all
select 'id2', 'user2', 'bob' from dual
);
create table USER_2(ID, USER_ID, EMAIL) as (
select 'id1', 'user1', 'rob@something.something' from dual union all
select 'id2', 'user2', 'bob@something.something' from dual
);
create table USER_CLASS_MAP(ID, USER_ID, CLASS_ID) as (
select 'id1', 'user1', 'class1' from dual union all
select 'id2', 'user2', 'class1' from dual
);
create table CLASS(ID, NAME) as (
select 'class1', 'Biology' from dual union all
select 'class2', 'Chemistry' from dual
);
查询:
select u.user_id, u.name, email
from class c
inner join USER_CLASS_MAP uc
on ( uc.class_id = c.id)
inner join "USER" u
on ( uc.user_id = u.user_id)
inner join USER_2 u2
on ( u2.user_id = u.user_id)
结果:
user1 rob rob@something.something
user2 bob bob@something.something
请注意,USER
是一个保留字,这就是我使用双引号的原因;最好不要使用保留字来命名对象。
DemandEntity:实体本身 伙伴关系: 这种方法导致一个例外: 不幸的是,我无法添加另一个联接列 因为PART表不包含ORDER字段,并且数据库的结构无法更改。 有没有办法执行这样的映射?
我有一个pyspark数据帧(df1 ),它由10K行组成,数据帧看起来像- 另一个pyspark数据帧(df2)由100k记录组成,看起来像- 我想使用pyspark内连接,最终的数据帧看起来像- df2中mobile_no的长度是12,但df1中是10。我可以加入它,但这是昂贵的操作。使用pyspark有帮助吗?
问题内容: 对于这些查询,我可以获得相同的结果,但是哪一个是最快,最有效的? in()或内部联接在哪里? 和 问题答案: 取决于您的SQL引擎。具有合理查询优化器的较新SQL系统很可能会将两个查询重写为同一计划。通常,使用联接(第一个查询)重写子查询(第二个查询)。 在可能没有出色查询优化器的简单SQL引擎中,联接应该更快,因为它们可能在运行外部查询之前将子查询运行到临时内存表中。 但是,在某些内
问题内容: 我无法找到一种使用MSAccess中的外部联接来联接4个或更多表的方法。它适用于SQL Server,但不适用于Access。我不相信这是可能的。我有表A,B,C,D和E。我需要像这样联接这些表: 左外连接B 左外连接C 内连接D B内连接E 当您在FROM子句中使用LEFT / RIGHT / INNER JOINS时,Access不会让您在where子句中使用常规联接。如果这样做,
问题内容: 好的,这是。我有两个表:product和product_sizes 所以基本上我的产品表具有id(主键),名称(产品名称)和size_id(product_sizes中的外键) 我的product_sizes表具有预定值: 在这里,我有一个有效的代码来显示产品表(使用while代码以html格式): 我的问题是我想显示(用html表示)尺寸名称而不是其size_id,类似于以下示例:
我想把这个过程内部化,这样只有云功能可以访问App Engineendpoint,但我正在与这个过程作斗争。 由于这两个服务都是无服务器的,所以我不能只过滤App Engine防火墙中的通信量,因为每次创建新实例时云功能都有不同的IP。 我曾尝试遵循本指南,其中建议将所有功能出口通信量与子网的无服务器VPC连接器相关联,然后用NAT控制该子网的所有通信量,并为其分配静态IP地址。这样,我可以通过N