2012-08-16 29 views
-2

请允许我再次作为一个愚蠢的问题。 从这两个表中调用query mysql真的很难。Mysql调用结果顺序由其他表

post_table

PostID | UID_frm 

    10  | 1 
    10  | 2 
    10  | 3 
    10  | 4 
    10  | 5 

USER_TABLE

Name | FID 

    tom | 2 
    tom | 3 
    henry | 4 

我想下面这个作为结果。

UID_frm 
2 
3 
1 
4 
5 

它是来自列UID_frm的结果,但user_table.FID的优先顺序。 请指教我想这样的调用:(但不工作)

select UID_frm 
from post_table 
where PostID='10' 
order by (select FID 
      from user_table 
      where Name='tom') 
+0

请澄清:你想列出汤姆的所有帖子,由FID命令,然后所有其他命令排序 - 什么? – 2012-08-16 09:48:38

+0

是否从user_table.FID引用post_table.UID_frm?表post_table和user_table之间的关系是什么? – 2012-08-16 09:54:19

+0

嗨Alex Monthy,我不想订购FID,那么它应该更容易。 – Thanaporn 2012-08-16 09:57:36

回答

1

我认为这是你在找什么:

SELECT UID_frm 
FROM post_table a 
    LEFT JOIN user_table b 
     ON a.UID_frm = b.FID 
WHERE PostID = '10' 
ORDER BY (IF(b.Name = 'tom', b.FID, NULL)) ASC, a.UID_frm ASC 
+1

嗨Omesh,这个为我工作。我只是从ASC改为DESC。谢谢。 – Thanaporn 2012-08-16 10:42:06

1

试试这个

select PT.UID_frm 
    from post_table as PT,user_table as UT 
    where UT.FID=PT.UID_frm and PT.PostID='10' 
    order by UT.name ASC/DESC 
+0

非常感谢,但正如我的尝试只显示3和2。 – Thanaporn 2012-08-16 10:40:28