2013-04-28 119 views
0

我使用的是三张表,我想要table3的详细信息与table_1.field_id。现在我得到没有table_1.field_id的完整记录。如何将table1.field_idtable_3记录包含在一起?从三个表中获取记录sql

查询:

select 
    fld_id, fld_name, fld_date 
from 
    table_3 
where 
    fld_item_id in (select fld_id 
        from tbl_table2 
        where fld_cust_id in (select fld_id 
             from table_1 
             where fld_ref_id = 100)); 

表3

FLD_ID FLD_Name FLD_DATE  FLD_ITEM_ID 
101  hai 12-01-2013 10 

表2

FLD_ID FLD_value FLD_CUST_ID FLD_DATE  
10  100  10000  12-01-2013 

表1

FLD_ID FLD_NAME fld_ref_id FLD_DATE 
10000 Vinoth 100   12-01-2013 
+2

显示您的表架构请 – 2013-04-28 13:54:27

+2

使用'join'让所有相关数据 – 2013-04-28 13:58:28

回答

2

尝试(由RBarryYoung为sugested)

SELECT B.fld_cust_id Table1FieldId, C.fld_id, C.fld_name, C.fld_date 
FROM tbl_table2 B 
INNER JOIN table_3 C ON C.fld_item_id = B.fld_id 
WHERE A.fld_ref_id=100 

或(如果需要从table_1等领域)

SELECT A.fld_id Table1FieldId, C.fld_id, C.fld_name, C.fld_date 
FROM table_1 A 
INNER JOIN tbl_table2 B ON B.fld_cust_id = A.fld_id 
INNER JOIN table_3 C ON C.fld_item_id = B.fld_id 
WHERE A.fld_ref_id=100 
+0

如果您只需要Table_1.FLD_ID,则实际上不需要加入它,因为它与Table_2.FLD_CUST_ID相同。 – RBarryYoung 2013-04-28 14:38:53

+0

@RBarryYoung更新了答案。谢谢... :) – Nalaka526 2013-04-28 15:52:25