每个人都过得愉快 我有三个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 ;
但结果我订购的不是
我在这里失踪了什么?
感谢您的时间,并原谅我的英语
“ - ” - 这是一个普通数据,仅用于表示。
答案 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也可能有用。