标签: join

在部分字符串匹配上连接表

输入:我有一个包含(任意数量)用户提供的字符串的表:

?????????
? Value ?
?????????
? To    ?
? An    ?
?????????
Run Code Online (Sandbox Code Playgroud)

以及用户详细信息表:

?????????????????????
? UserID ? UserName ?
?????????????????????
?     12 ? Tom      ?
?    132 ? Ann      ?
?     32 ? Dina     ?
?      2 ? Mark     ?
?????????????????????
Run Code Online (Sandbox Code Playgroud)

我需要一个查询来返回用户表中的所有记录,其中UserNameValue输入表中任何记录的部分字符串匹配。这种情况下的预期输出是:

?????????????????????
? UserID ? UserName ?
?????????????????????
?     12 ? Tom      ?
?    132 ? Ann      ?
?????????????????????
Run Code Online (Sandbox Code Playgroud)

join sql-server t-sql

0
推荐指数
2
解决办法
2万
查看次数

寻找一个片段,说明在 where 子句中连接的模糊结果

不久前(大约 2004 年),我在一个团队中担任后端开发人员,每个人都使用 where 子句加入。作为使用内/外连接的支持者,我向他们展示了一个 where 子句连接的示例,该示例说明了它如何根据数据产生不明确的结果,以及外连接如何避免该问题。

我必须做同样的演示,但再也找不到那个片段了。它在我的文件档案中的某个地方,不幸的是我无权访问。有没有人有一个方便的例子?

join sql-server

0
推荐指数
1
解决办法
69
查看次数

从列值应该不同的表中选择值

假设表中有 4 列。

cpt,cpt4mod,itemcharge,eff_date.
Run Code Online (Sandbox Code Playgroud)

条件1:如果值cpt,cpt4itemcharge是一样的,但是eff_date是不同的。然后我需要根据eff_date.

condtition2:如果值cptcpt4是相同的,但eff_dateitemcharge不同。然后我需要根据eff_date.

条件3:如果所有列都具有相同的值,那么我需要根据 eff_date

条件 4:如果 的值cpt,cpt4and,eff_date相同但itemcharge 不同。然后我需要获取除最新记录之外的所有记录

join sql-server group-by

0
推荐指数
1
解决办法
504
查看次数

需要 3 个表的 SQL 外连接帮助

见下面的例子。ID_1ID_A用于主键table_1table_3分别。Table_2,主键是ID_1ID_A。由于业务规则,ID_A连接到一个且只有一个ID_1via table_2

我需要一个查询将返回所有行table_1其中,value_1 = 11并加入到的是,我需要行从table_3有一个value_a = 'a',如果它加入到行中table_1,有一个value_1 = 11

请参阅所需的结果。注意没有行

|1 | a |
Run Code Online (Sandbox Code Playgroud)

在结果集中因为value_afor id_a = 'b';

我试过左外连接,但ID_1都返回了。我也试过 CTE,无济于事。这是一个 SQL,我试过了。

Select ID_1, Value_1, ID_A, VALUE_A
   From TABLE_1 t1
   Join TABLE_2 t2 on t1.ID_1 = t2.ID_1
   Left Outer Join TABLE_3 …
Run Code Online (Sandbox Code Playgroud)

oracle join

0
推荐指数
1
解决办法
2万
查看次数

RIGHT JOIN 没有按预期工作

我有一个关于连接两个表的问题。

架构

CREATE TABLE [dbo].[DCString] (
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [DCDistributionBoxID] [bigint] NOT NULL,
    [CurrentMPP] [decimal](18, 2) NULL,
    CONSTRAINT [PrimaryKey3] PRIMARY KEY CLUSTERED ( [ID] ASC )
)

ALTER TABLE [dbo].[DCString]
    ADD CONSTRAINT [FK_DCString_DCDistributionBox] FOREIGN KEY([DCDistributionBoxID])
    REFERENCES [dbo].[DCDistributionBox] ([ID])

CREATE TABLE [dbo].[StringData](
    [DCStringID] [bigint] NOT NULL,
    [TimeStamp] [datetime] NOT NULL,
    [DCCurrent] [decimal](18, 2) NULL,
    CONSTRAINT [PrimaryKey4] PRIMARY KEY CLUSTERED ( [TimeStamp] DESC, [DCStringID] ASC)
)
Run Code Online (Sandbox Code Playgroud)

[StringData]表具有以下存储统计信息:

  • 数据空间:26,901.86 MB
  • 行数:131,827,749
  • 分区:真实
  • 分区数:62
用法

我现在想将[StringData]表中的数据与表中的数据连接起来[DCString]。 …

sql-server-2008 join sql-server

0
推荐指数
1
解决办法
2232
查看次数

如何从由记录标识符连接的 3 个表中检索数据?

我有3张桌子。

我需要使用特定WHERE条件检查这些表中是否存在特定标识符。我需要从所有 3 个表中获取数据。

我已经试过LEFT JOINRIGHT JOIN而且FULL OUTER JOIN但我无法得到中间表的值。

我的查询尝试是:

Select t1.col1, t2.col2, t3.col3
from t1
left outer join t2
on t1.id=t2.id
full outer join t3
on t1.id=t3.id
where t.id= '101';
Run Code Online (Sandbox Code Playgroud)

我无法获得仅存在于 t2 表中的值。

join query

0
推荐指数
1
解决办法
478
查看次数

如何将视图转为连接,以便将多个查询行作为单行中的列?

我有一个视图,我在其中提取车辆的属性,例如轮胎尺寸、发动机容量、颜色、门数等。这些数据存储在多个表中,但我已将数据简化到我的视图中。

我想要实现的是将此视图加入我的主车辆表,以便我可以选择各种属性作为单行中的列。

我的看法:

Vehicle_ID  Property     Value
1           Doors        2
1           Engine Size  2 liter
1           Tire Size    50cm
1           Color        Blue
2           Doors        4
2           Engine Size  3 liter
Run Code Online (Sandbox Code Playgroud)

还有我的主要车辆表:

Vehicle_ID  Description  Date_Bought  Owner_ID
1           BMW M3 Sport 2000/12/23   1
2           Audi A5 3XL  2015/03/19   1
Run Code Online (Sandbox Code Playgroud)

所以我想出去的是

Vehicle ID  Description   Date_Bought   Doors   [Engine Size]  [Tire Size]  [Color]
1           BMW M3 Sport  2000/12/23    2       2 liter        50cm         Blue
Run Code Online (Sandbox Code Playgroud)

我的整体 SQL 知识相当有限,我很擅长 JOINS 和其他东西,但是 PIVOT 命令的逻辑及其语法完全让我望而却步。

join sql-server pivot

0
推荐指数
1
解决办法
2万
查看次数

JOIN 和简单查询有什么区别

我在数据库中有两张表,一张是Orders,另一张是customers

订单表包含:订单 ID、客户 ID 和订单日期

客户表包含:CustomerID、CustomerName、ContactName 和 country

实际上,“Orders”表中的“CustomerID”列指的是“Customers”表中的“CustomerID”。上面两个表之间的关系是“CustomerID”列。

加入查询

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
    FROM Orders
    INNER JOIN Customers
    ON Orders.CustomerID=Customers.CustomerID;
Run Code Online (Sandbox Code Playgroud)

简单查询

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders,Customers
WHERE Orders.CustomerID=Customers.CustomerID;
Run Code Online (Sandbox Code Playgroud)

两个查询的结果是: OrderID 、 CustomerName 和 OrderDate

在上面的两个查询中,我得到了相同的结果。我想知道这些查询之间的区别,如果我们可以通过 SIMPLE 查询来实现,为什么要使用 JOIN?

mysql performance join query-performance

0
推荐指数
1
解决办法
1727
查看次数

SQL 左连接返回空列

我想LEFT JOIN在两个表上做一个,其中一个表有一个日期时间列,另一个表有一个日期列。当我在 SQL Server 中工作时,我曾经CONVERT将日期时间更改为日期。然后我写了 join 语句:

SELECT CONVERT(date,db1.dbo.table1.datecolumn), db2.dbo.table2.datecolumn
FROM db1.dbo.table1
LEFT JOIN db2.dbo.table2 
    ON db1.dbo.table1.datecolumn = db2.dbo.table2.datecolumn
Run Code Online (Sandbox Code Playgroud)

查询返回 table1 中的日期列,但 table2 中的列仅填充为 NULL 值。我不确定我做错了什么。我尝试CASTCONVERT,而不是,但没有运气。转换有什么事情发生吗?任何帮助表示赞赏。

null join sql-server

0
推荐指数
1
解决办法
1万
查看次数

连接表而不会丢失数据

我处于需要查询数据库中的数据的情况,但正在努力解决如何正确形成查询的问题。基本上我需要从下表中获取数据:

Table: Contact
    contact_id INT [Primary Key]
    first_name VARCHAR(50)
    last_name  VARCHAR(50)

Table: Contact_Phone
    contact_id   INT [Foreign Key/Composite Primary Key]
    phone_number VARCHAR(15) [Composite Primary Key]
    extension    VARCHAR(10), NULL

Table: Contact_Fax
    contact_id   INT [Foreign Key/Composite Primary Key]
    fax_number   VARCHAR(15) [Composite Primary Key]

Table: Contact_Email
    contact_id   INT [Foreign Key/Composite Primary Key]
    email        VARCHAR(100) [Composite Primary Key]
Run Code Online (Sandbox Code Playgroud)

现在并不是我Contacts桌子上的每个联系人都有电话、传真或电子邮件。有些人只有一部电话或传真。其他人只是一封电子邮件。我知道有一个联系人只有一个电话号码。

现在我的问题是,如果我尝试对所有这些表进行简单的查询以查找特定的联系信息,如果其中任何一个都没有条目(例如,我的一个没有传真或电子邮件的联系人) 然后我根本没有返回任何数据。

所以问题是,我如何将这个查询放在一起,以便如果我试图查找特定联系人的信息,即使其中一个发生,我仍然能够看到所有数据(电话/传真/电子邮件)是空白?

join sql-server query

0
推荐指数
1
解决办法
2058
查看次数