我们有三张桌子。
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
答案 0 :(得分: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'
答案 1 :(得分: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