2016-02-07 71 views
0

我有一個名爲Pupils的表和一個名爲Bus的表。MYSQL從列中插入特定數據

總線包含一個ID,目標(它去的地方)和時間(當它離開)。

學生包含名稱,位置(它住的地方)和BusID(需要採用哪條巴士)。

我想用'Bus'表中的正確'ID'填充'BusID'列(取決於學生選擇的位置和時間)。

例如,學生住在特拉維夫,並希望在10:00的巴士。

我需要填寫他的BusID列AND ROW(有很多學生)在巴士桌上有相同的'ID',其中目的地等於特拉維夫,時間等於10:00。

無論如何可能嗎?我正在考慮使用插入/插入選擇,但它並不真正符合我的需求。

+0

您能否提供一些樣品數據和預期結果?從您的解釋中可以看出,巴士在某個特定時間向某個特定地點開放,而學生則希望從特定地點開始旅行。 – PerlDuck

+0

@PerlDog是的,我可以。 在特定時間駕駛到某個特定位置的公交車以及想在特定時間前往特定位置的學生。 我可以提取我想選擇命令 'SELECT ID 從公共汽車 其中的目標='特拉維夫和時間= '10具體的數據:00:00' ;' 這將提供給我的學生需要在他需要的時間到他家的巴士ID。 (他住在特拉維夫,他想在10:00:00乘坐巴士)。 現在我需要幫助來弄清楚如何將這些數據(正確的BusID)插入這個學生。 – itai

+0

啊,那麼你的學生就在別的地方,想回家去特拉維夫。不更新學生設置busid =(SELECT ID FROM bus WHERE Destination ='Tel Aviv'AND Time = '10:00:00')where location ='Tel Aviv'' work? – PerlDuck

回答

0

正如我同時理解:學生在別的地方(大概不在T.A.),並希望找到將他們帶回T.A的公共汽車。在10:00時。

這然後可以與

-- The id of the bus that travels at 10:00 to T.A.: 
select id from bus where destination='Tel Aviv' and time='10:00:00'; 

-- Update the pupil's record with the bus-id: 
update pupils set busid=... where location='Tel Aviv'; 

-- Together (and that's the answer): 
update pupils set busid=(select id 
          from bus 
          where destination='Tel Aviv' 
          and time='10:00:00') 
       where location='Tel Aviv'; 

注意,這假定存在一個在所述第一查詢正好一個結果行,即正好一個10點總線T.A.實現