我有這個疑問:子查詢返回多個1行
UPDATE student_info
set grade = (SELECT tempTable.grade
FROM tempTable
WHERE student_info.s_id = (SELECT s_id FROM tempTable))
我也試着在這裏建議的解決方案: http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html
我有這個疑問:子查詢返回多個1行
UPDATE student_info
set grade = (SELECT tempTable.grade
FROM tempTable
WHERE student_info.s_id = (SELECT s_id FROM tempTable))
我也試着在這裏建議的解決方案: http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html
我想你想:
UPDATE student_info
JOIN tempTable
ON tempTable.s_id = student_info.s_id
SET student_info.grade = tempTable.grade
,這將完成這項工作。 – 2012-01-16 16:20:19
我會嘗試。回來一分鐘。 – Nath 2012-01-16 16:20:50
+1非常棒的猜測,你是通靈!在發佈之前,我剛刪除了一個錯誤的答案,因爲我誤解了這個問題...... – 2012-01-16 16:22:30
你子查詢返回多個行,可能是因爲JOIN不正確。嘗試:
UPDATE student_info
SET grade = (SELECT grade
FROM tempTable
WHERE s_id = student_info.s_id)
當然,這是假設tempTable
只包含每s_id
一個記錄。如果有更多的那一個,那麼你需要按TOP 1
排序某些屬性(最新?最高?)
這也應該起作用。 MySQL有'LIMIT n',但沒有'TOP n'。 – 2012-01-16 16:31:15
你究竟想要做什麼? – 2012-01-16 16:15:49
這個問題是需要的! – Akrem 2012-01-16 16:17:02
我有兩個表格,student_info包含3行(s_d,name,grade)。除了'等級'之外,所有東西都被填滿使用具有相同行數的tempTable表,除了它包含等級外,我想將tempTable的等級傳遞給student_info – Nath 2012-01-16 16:18:59