当前位置: 首页 > 知识库问答 >
问题:

用“WHERE”子句联接三个表

农建弼
2023-03-14

我想写一个SP,我将在我的C#程序中使用。我有三个表:Table1(id pk,name,...)、Table2(id pk,name,...)和Table3((idT1,idT2)pk FK)。因此,表3模拟了表1和表2之间的n:n关系。

我想检索与单个Table1.Name相关的所有Table2.Name。

我已经尝试编写一个包含两个内部联接的查询

    CREATE PROCEDURE slct
    @name nvarchar(50)

    AS
    BEGIN
    SET NOCOUNT ON;
    SELECT Table2.name from Table2  
    join Table3 on Table2.id = Table3.idT2 join Table1 on Table1.id = Table3.idT1 where Table1.name = '%'+@name+'%'

    END
    GO

Table1
|1|abc|
|2|def|

Table2
|1|xyz|
|2|mno|

Table3
|1|1|
|1|2|
|2|2|

对不起我的英语。

共有1个答案

柴华灿
2023-03-14
select Table2.Names from Table2 
inner join 
     (select Table3.idT1 as SubQueryID1, Table3.idT2 as SubQueryID2 
      from Table3 inner join Table1 on Table1.id = Table3.idT1) 
on 
Table2.Id = SubQueryID2 
 类似资料:
  • 我将两个表上的连接定义为左外部连接,以便所有记录都从左表返回,即使它们在右表中没有记录。不过,我还需要包含一个where子句,但是...即使不满足where子句中的条件,我仍然希望为左侧表中的每个记录返回左侧表中的一行。有办法做到这一点吗? 我正在编写带有联接条件的查询,如下所示 以上条件不返回任何行。其中如下条件返回... 输出应为

  • 问题内容: 我在定义为左外部联接的两个表上有一个联接,以便所有记录都从左表返回,即使它们在右表中没有记录也是如此。但是,我还需要在右侧表中的字段上包含where子句,但是....我仍然希望为左侧表中的每个记录返回左侧表中的一行,即使where子句中的条件不满足。有没有办法做到这一点? 问题答案: 是的,将条件(称为谓词)放入联接条件中

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the

  • 问题内容: 当在主键列上连接两个简单表并放置附加相等条件时,可以在连接本身或where子句中完成。 例如,以下等价。 我的问题是-是否有理由使用一种样式而不是另一种样式? …对比: 问题答案: 这是样式问题。通常,您需要将定义结果集的“形状”的条件放在FROM子句中(即那些控制每个表的哪些行应连接在一起以产生结果的条件),而那些条件将对结果进行 过滤 set应该在WHERE子句中。对于INNER

  • 问题内容: 我正在使用Hibernate 3.6和MSSQL 2012。 执行此HQL时 我正在获取此SQL 请注意 交叉连接 和where子句中的 附加条件* 。 根据Hibernate docs https://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html#queryhql- joins- forms 隐式连

  • 根据Hibernate文档https://docs.jboss.org/Hibernate/core/3.5/referen/html/queryhql.html#queryhql-joins-forms 隐式联接应生成为内部联接。 我注意到有一个打开的bug https://hibernate.atlassian.net/browse/hhh-7707可能提到了这个问题,但没有人回答,而且它已经

  • 在MariaDB中,子句与,,和语句一起使用来选择或更改想要更改的满足指定特定行记录。 它是一个在表名后面出现的语句。 语法 注意:子句是一个可选的子句。它可以和,,,运算符一起使用。 1. WHERE子句与单一条件 示例: 我们有一个表,里边有一些数据。假设要查询表中的小于的所有记录。 执行上面查询语句,得到以下结果 - 2. WHERE子句与AND条件 为了方便演示,这里再插入一条数据 - 当

  • 主要内容:语法,实例SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。 如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。 WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。 语法 SQLite 的带有 WHERE 子句的 SELECT