[SQL ] 考題語法請教

看板Database (資料庫)作者 (社會黑暗、行路難)時間5年前 (2019/06/11 23:52), 5年前編輯推噓4(4012)
留言16則, 5人參與, 4年前最新討論串1/1
以下有兩個資料表: > customers C_ID Name City Address Phone 1 張一 台北市 XX路100號 02-123456789 2 王二 新竹縣 YY路200號 03-123456789 3 李三 高雄縣 ZZ路300號 07-123456789 > orders O_ID OrderNO C_ID 1 2572 3 2 7375 3 3 1054 1 4 7520 1 5 1257 2 (1)找出每位客戶的訂單總數及最後那筆訂單編號。 我的解法: select customers.Name, count(orders.C_ID) as OrderNumber, max(OrderNO) as LastOrderNum from customers, orders where customers.C_ID = orders.C_ID group by orders.C_ID 依照鄉民建議修改。 (2)修改訂單編號1257的客戶電話為03-87654321。 我的解法: select customers.C_ID, customers.Name, customers.City, customers.Address, replace (customers.Phone, '03-12345678', '03-87654321') as Phone from orders, customers where customers.C_ID = orders.C_ID and orders.OrderNO = 1257 這裡用replace處理,但是不確定與update的差別,是指資料庫內容有無更新嗎? (3)複製張一最後一筆訂單的資料,新增至orders(PK: O_ID) 我的解法: 想到的方式是create table然後全部重key,這樣很笨但是暫時查無好方法。 再麻煩各位解答了,感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.164.43 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1560268346.A.7B9.html

06/12 00:37, 5年前 , 1F
MAX(OrderNumber) 試試
06/12 00:37, 1F
感謝建議,更新後解法修改在內文。

06/12 09:51, 5年前 , 2F
update a
06/12 09:51, 2F

06/12 09:51, 5年前 , 3F
set a.phone=03-87654321
06/12 09:51, 3F

06/12 09:52, 5年前 , 4F
from customers a
06/12 09:52, 4F

06/12 09:52, 5年前 , 5F
join order b on a.c_id =b.c_id
06/12 09:52, 5F

06/12 09:53, 5年前 , 6F
and b.orderno=1257
06/12 09:53, 6F
本人資質駑鈍,有點看不懂,不過有更新語法在內文,還請指導。 ※ 編輯: paranoia5201 (123.194.164.43 臺灣), 06/12/2019 11:41:36 ※ 編輯: paranoia5201 (123.194.164.43 臺灣), 06/12/2019 11:44:39

06/12 13:25, 5年前 , 7F
2的解法你可以去google update join
06/12 13:25, 7F

06/12 13:27, 5年前 , 8F
3的解法則是1的解法再增加where name='張一',再insert
06/12 13:27, 8F

06/12 13:27, 5年前 , 9F
回orders這張表
06/12 13:27, 9F

06/12 13:28, 5年前 , 10F
2是要你做update,你用select是沒有作用的
06/12 13:28, 10F

06/12 13:33, 5年前 , 11F
建議你可以先google了解DML,DQL的差異
06/12 13:33, 11F

06/12 17:05, 5年前 , 12F
replace只作用在你查詢的結果 不會修改DB裡的值
06/12 17:05, 12F

06/12 17:10, 5年前 , 13F
第2題看題目敘述 應該是要你用update
06/12 17:10, 13F

06/16 22:19, 4年前 , 14F
你串表要from a join b on a.ID=b.ID 而不是直接寫from
06/16 22:19, 14F

06/16 22:19, 4年前 , 15F
a, b
06/16 22:19, 15F

06/16 22:20, 4年前 , 16F
你更新在內文的寫錯了 推iv大寫的
06/16 22:20, 16F
文章代碼(AID): #1S_yuwUv (Database)
文章代碼(AID): #1S_yuwUv (Database)