0

我们有三张桌子。

tblA

id(PK)      doc_id(fk)     mr_id(fk)       date 
--------    ----------     --------        ---------
1             23            22             2012-05-23
2             24            22             2012-05-23
3             25            21             2012-05-24
4             26            22             2012-05-24



tblB 

doc_id(PK)      d_name          d_segId(FK)    mr_id(FK)  
------------    -------------   ----------     ---------- 
     1          manish           1              12
     23         rahul            2              22
     24         paul             1              22
     25         jacky            1              21
     26         amit             2              22



tblC
seg_id(PK)      seg_name       seg_color        
--------        ----------     --------       
1               A_corei         red             
2               Bcorec          green          

我想要的是来自 tblA 的所有记录,其中 mr_id=22 和 date='2012-05-23' 并在 tblC 中按 seg_name 排序

doc_id 引用到 tblB 并且在 doc_id 的基础上, Seg_id 引用到 tblC 在这种情况下如何使用 join。

它应该看起来像

id           doc_id      d_name        seg_color
--------    ---------   ---------      ----------
1            23          rahul         green  
2            24          paul          red
4

2 回答 2

2

试试这个。

SELECT a.id,b.doc_id,b.d_name,c.seg_color FROM tblB b 
INNER JOIN tblA a ON b.doc_id=a.doc_id
INNER JOIN tblC c ON b.d_segId=c.seg_id
WHERE a.mr_id=22
AND a.date='2012-05-23'
于 2012-05-12T10:58:37.010 回答
0
SELECT
    tblA.id,
    tblA.doc_id,
    tblB.d_name,
    tblC.seg_color
FROM
    tblA, tblB, tblC
WHERE
    tblA.doc_id = tblB.doc_id
    AND
    tblB.d_segId = tblC.seg_id
    AND
    tblA.mr_id = 22
    AND
    tblA.date = '2012-05-23'
ORDER BY
    tblC.seg_name
于 2012-05-12T10:59:58.270 回答