如何将表中选择获得的所有记录与另一个表的记录一起加入?

时间:2016-02-17 11:03:16

标签: mysql sql database join rdbms

我是SQL的新手,我在尝试在 MySql 数据库上实现以下查询时遇到以下问题。

所以我有这种情况:

在我的数据库中有一个名为 TID023_INTERVENTO 的表格,其中此表格的每一行代表一个项目(对我来说,项目是可以获得资助的项目)。

它具有以下结构:

Field            Type            Null   Key    Default    Extra

PRG_INT          int(11)         NO     PRI               auto_increment
COD_INT          varchar(15)     NO     UNI     
DES_INT          text            YES            
COD_CUP          varchar(15)     YES    UNI     
FLG_CUP_PRO      tinyint(1)      YES            
...................................................................
...................................................................
...................................................................

所以通过这个查询:

select * from TID023_INTERVENTO where COD_TIP_STA_INT = 2 && COD_TIP_BAN = 2;

我获得了一个项目列表(项目是 TID023_INTERVENTO 表的记录),其中包含 COD_TIP_STA_INT COD_TIP_BAN 田地。

好的,这个查询工作正常,我获得了项目列表。

我的问题是,现在我必须修改上一个查询以加入存储在另一个名为 TID031_PIANO 的表中的信息。

情况如下:上一个查询检索到的每条记录都以1:1的比例链接到具有以下结构的 TID031_PIANO 表中的记录:

Field             Type          Null    Key
PRG_PIA           int(11)       NO      PRI
DES_DEN_SCU       varchar(255)  NO  
DES_PIA           text          YES 
PRG_INT           int(11)       YES     MUL     
..............................................................
..............................................................
..............................................................

因此,正如您所看到的,在第二个表( TID031_PIANO )中,有 PRG_INT 字段代表 TID023_INTERVENTO 表。

我知道我可以先通过原始的简单查询检索 TID031_PIANO 表的记录列表,这一个:

select * from TID023_INTERVENTO where COD_TIP_STA_INT = 2 && COD_TIP_BAN = 2;

然后迭代每条记录以获取主键,因此使用此主键在 TID031_PIANO 表上执行第二个简单选择查询,指定 PRG_INT 该表的字段。

但是我想把它变成一个单独的查询performina join或类似的东西。

实现此任务的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

那么,您正在寻找连接语法吗?

select * from TID023_INTERVENTO s
INNER JOIN TID031_PIANO t 
ON(s.PRG_INT = t.PRG_INT )
where s.COD_TIP_STA_INT = 2 and t.COD_TIP_BAN = 2;

答案 1 :(得分:1)

尝试:

{{1}}