在JOIN表中的MySql查询排序

时间:2013-09-05 14:02:35

标签: mysql sql join

每个人都过得愉快 我有三个MySql表

-doc

-DocType

-Org

我这样做了一个查询:

  

选择 Doc.Code,Doc.DataAccept,DocTypes.Name,Org.Name

     

发件人   Doc,DocTypes,Org

     

位置 Doc.Type = DocTypes.Code AND Doc.Org = Org.Code AND Doc.Code;

在结果中我有

  

|代码| DataAccept |名称|名称|

17  |    -   |  - |  - | 

18  |    -   |  - |  - | 

24  |    -   |  - |  - | 

26  |    -   |  - |  - | 

32  |    -   |  - |  - | 

代码字段不是串联的

如果像

那样进行查询
  

选择 Doc.Code,Doc.DataAccept,DocTypes.Name,Org.Name

     

发件人   Doc,DocTypes,Org

     

位置 Doc.Type = DocTypes.Code AND Doc.Org = Org.Code AND Doc.Code AND Doc.Code< 100;

比没关系

  

|代码| DataAccept |名称|名称|

1   |    -   |  - |  - | 

2   |    -   |  - |  - | 

3   |    -   |  - |  - | 

4   |    -   |  - |  - | 

5   |    -   |  - |  - | 

如果Doc.Code< 1000比它再次不是连续的 我尝试使用ORDER BY Code

  

选择 Doc.Code,Doc.DataAccept,DocTypes.Name,Org.Name

     

发件人   Doc,DocTypes,Org

     

位置 Doc.Type = DocTypes.Code AND Doc.Org = Org.Code AND Doc.Code AND Doc.Code

     

ORDER BY 代码 DESC ;

  

选择 Doc.Code,Doc.DataAccept,DocTypes.Name,Org.Name

     

发件人   Doc,DocTypes,Org

     

位置 Doc.Type = DocTypes.Code AND Doc.Org = Org.Code AND Doc.Code AND Doc.Code

     

ORDER BY 代码 ASC ;

但结果我订购的不是

我在这里失踪了什么?

感谢您的时间,并原谅我的英语

  

“ - ” - 这是一个普通数据,仅用于表示。

1 个答案:

答案 0 :(得分:0)

SELECT Doc.Code,Doc.DataAccept,DocTypes.Name,Org.Name

FROM Doc LEFT OUTER JOIN DocTypes JOIN Org

ON Doc.Type=DocTypes.Code AND Doc.Org=Org.Code;

WHERE Doc.Code < 1000 ;

ORDER BY 1

explanation也可能有用。