2014-12-07 33 views
1

我有此查詢在MySQL查詢沒有順序

Select nametwo 
from cities 
inner join usuarios 
where cities.nametwo=usuarios.jug1 
    or cities.nametwo=usuarios.jug2 
    or cities.nametwo=usuarios.jug3 

和數據是

jug1 = 2 jug2 = 1 jug3 = 4

然後,查詢順序ASC的數據,我希望按順序選擇它。 有沒有辦法做到這一點?謝謝

+1

「按順序選擇」---那是什麼? – zerkms 2014-12-07 23:46:45

+2

除非您指定一個SQL,否則SQL不保證該命令。你需要添加一個'order by'子句,但是'select'的順序對我來說太過模糊了,不能提供任何建議。 – 2014-12-07 23:50:18

+0

我想訂購「jug1」「jug2」「jug2」..... 訂單將會是:2,1,4 – 2014-12-07 23:55:08

回答

0

首先,如果您使用inner join,請使用on子句。除了MySQL之外,這是每個數據庫都需要的,它看起來很尷尬。這是一個等效查詢:

Select c.nametwo 
from cities c inner join 
    usuarios u 
    on c.nametwo in (u.jug1, u.jug2, u.jug3); 

這個公式實際上直接表明了答案。使用field()功能:

order by field(c.nametwo, u.jug1, u.jug2, u.jug3) 
+0

謝謝!訂單有效!你是一臺機器 – 2014-12-08 00:10:35

1

看來你是想通過usuarios表,除非我誤解訂購。

Select nametwo 
from cities 
inner join usuarios 
where cities.nametwo=usuarios.jug1 
or cities.nametwo=usuarios.jug2 
or cities.nametwo=usuarios.jug3 
order by usuarios