2017-04-10 33 views
1

在我的節目,我有兩個查詢(結果是創建一個頂),第一個查詢得到的頂部位置,誰在那個位置,例如第一位置的結果會是這樣的:如何在兩張桌子之間訂購?

POSITION: 1 ID: 203 

其中POSITION是位置,ID是用戶ID,那麼爲了獲取用戶名和不顯示ID,我會在輸入所有頂部ID的同時執行另一個查詢,並且查詢返回用戶名。

問題是,在第一個查詢中,我能夠獲得頂部訂單,但是當我在第二個查詢中輸入ID時,返回的信息處於奇怪的順序,我無法知道哪個用戶名會轉到在頂部的哪個位置。

PS:第二個查詢表包含兩列(ID和USERNAME),第一個表也包含兩列(POSITION和ID)。

+0

這是更好地提供樣本表數據和預期的輸出中 –

回答

2

如果你想返回所有1個圖表都不管第二表包含或不 那麼你可以使用左外連接和數據的查詢應該是

SELECT f1.id as user_id, f1.position, s1.username 
FROM first_table AS f1 
LEFT JOIN second_table AS s1 
ON f1.id = s1.id 
ORDER BY f1.position asc 

但你只想看到數據這兩個表有那麼你可以使用內部連接 然後查詢應該有如下

SELECT f1.id as user_id, f1.position, s1.username 
FROM first_table AS f1 
inner JOIN second_table AS s1 
ON f1.id = s1.id 
ORDER BY f1.position asc 
+0

非常感謝你,工作就像一個魅力! –

0

使用連接查詢

Select B.username from table1 A Join table2 B on A.Id = b.id order by A.POSITIONID asc limit 1 
0
SELECT ft.user_id, ft.position, st.username 
FROM first_table AS ft 
LEFT JOIN second_table AS st 
ON ft.user_id = st.user_id 
ORDER BY ft.user_id 

哪裏first_table是位置和標識的表的名稱,並second_table與ID和用戶名的表的名稱。

使用此查詢,您將獲得您想要的所有數據(ID,位置和用戶名)以及對數據庫的單個查詢。