Update 1 field vào Table mà không cần tạo field trước

Liên hệ QC

Luong Thien Tri

Thành viên mới
Tham gia
17/8/17
Bài viết
15
Được thích
10
Giới tính
Nam
Nghề nghiệp
Ngan Hang
Mọi người ơi,

Thông thường để update một field từ một table2 vào table1 mình dùng Query Update, tuy nhiên ở table1 phải tạo sẵn một field trước sau đó mới tạo query:

Mọi người cho mình hỏi, có cách nào để tạo query để add thêm một cột lấy từ bảng khác mà không cần tạo field trước ở bảng cần tạo được không mọi người.

File đính kèm là mình muốn từ 3 bảng DANH SACH, VUNG, PHONG để tạo ra cột PHAN LOAI như trong bảng DANH SACH (KET QUA) mà không cần phải tạo trước cột PHAN LOAI trong bảng DANH SACH trước khi RUN Query.

Cám ơn mọi người,
 

File đính kèm

  • Learning.rar
    16.9 KB · Đọc: 8
Mọi người cho mình hỏi, có cách nào để tạo query để add thêm một cột lấy từ bảng khác mà không cần tạo field trước ở bảng cần tạo được không mọi người.

Không có lô gic chút nào.
Chả lẽ mỗi lần chạy query là nó "add" thêm 1 field.
(Dùng tiếng Anh cẩn thận. Bạn dùng từ "add" trong ngữ cảnh này thì sẽ được hiểu theo nghĩa của từ "add" trong CSDL)
 
Không có lô gic chút nào.
Chả lẽ mỗi lần chạy query là nó "add" thêm 1 field.
(Dùng tiếng Anh cẩn thận. Bạn dùng từ "add" trong ngữ cảnh này thì sẽ được hiểu theo nghĩa của từ "add" trong CSDL)

Bạn ơi, trước khi "phán" bạn nên tìm hiểu người ta muốn gì. :) Bạn là "thành viên gạo cội" mà chẳng bao giờ thấy lời khuyên của bạn có "giá trị sử dụng". :) Về câu hỏi của mình:

1. Chỗ nào của mình nói là mình sẽ chạy query nhiều lần.
2. Nếu một data có 10 field, giờ mình thêm field thứ 11 thì gọi không gọi là "add" chứ là gì?! :)

Vấn đề ở chỗ là mình đang hỏi cách "add" chứ không phải cách "update", sở dĩ tiêu đề mình ghi vậy là do kiến thức mình có hẹn chỉ biết cách "update" tức là "CẬP NHẬT" vào field có sẵn, mình đang hỏi mọi người cách "THÊM" vào và có vẻ như câu hỏi của mình không đủ rõ để "gạo cội" và "giỏi tiếng Anh" như bạn đọc mà không hiểu :)). Xin lỗi bạn!

[BTW, bạn vui lòng đừng tham gia vào topic của mình vì mình chẳng bao giờ thấy ý kiến của bạn có giá trị!]
 
Mọi người ơi,

Thông thường để update một field từ một table2 vào table1 mình dùng Query Update, tuy nhiên ở table1 phải tạo sẵn một field trước sau đó mới tạo query:

Mọi người cho mình hỏi, có cách nào để tạo query để add thêm một cột lấy từ bảng khác mà không cần tạo field trước ở bảng cần tạo được không mọi người.

File đính kèm là mình muốn từ 3 bảng DANH SACH, VUNG, PHONG để tạo ra cột PHAN LOAI như trong bảng DANH SACH (KET QUA) mà không cần phải tạo trước cột PHAN LOAI trong bảng DANH SACH trước khi RUN Query.

Cám ơn mọi người,
Để thêm field mới theo yêu cầu của bạn thì ta chạy query như sau:

Mã:
'Them cot
ALTER TABLE [DANH SACH] ADD COLUMN [PHAN LOAI] TEXT(255)
'Xoa cot
ALTER TABLE [DANH SACH] DROP COLUMN [PHAN LOAI]

Không có lô gic chút nào.
Chả lẽ mỗi lần chạy query là nó "add" thêm 1 field.
(Dùng tiếng Anh cẩn thận. Bạn dùng từ "add" trong ngữ cảnh này thì sẽ được hiểu theo nghĩa của từ "add" trong CSDL)
Nếu chạy nhiều lần nó đâu "add" thêm nhiều cột giống nhau đâu anh. Bởi vì nó đâu cho thêm cột có tên trùng.
 
Để thêm field mới theo yêu cầu của bạn thì ta chạy query như sau:

Mã:
'Them cot
ALTER TABLE [DANH SACH] ADD COLUMN [PHAN LOAI] TEXT(255)
'Xoa cot
ALTER TABLE [DANH SACH] DROP COLUMN [PHAN LOAI]


Nếu chạy nhiều lần nó đâu "add" thêm nhiều cột giống nhau đâu anh. Bởi vì nó đâu cho thêm cột có tên trùng.

Cám ơn Thầy - Hai Lúa Miền Tây. E có thể hiểu là đây là cách dùng code để add field vào Table, sau đó vẫn phải chạy Query để update dữ liệu vào cột mới thêm đó phải không Thầy?!

Có cách nào mà trong Query - Design view mình có thể vừa add field vừa update không Thầy?! Đại loại giống như mình dùng "Expr1: [table1].[field1]" trong Query đó Thầy?!

[Em chỉ hỏi để tìm hiểu thêm! :)]

(Em đã tham gia khóa học với Thầy, có tgian sẽ lại đăng ký học nữa. Rất bổ ích!)
 
Lần chỉnh sửa cuối:
[BTW, bạn vui lòng đừng tham gia vào topic của mình vì mình chẳng bao giờ thấy ý kiến của bạn có giá trị!]

Theo tôi hiểu cách hoạt động của diễn đàn thì người lập thớt không phải là sở hữu chủ của thớt. Và vì vậy không hề có quyền yêu cầu ai tham gia hoặc không tham gia.

Tôi là dân tải hàng, chỉ biết nói chuyện về xe tải. Đối với những người thích lao xe Ferrari trên xa lộ thì ý kiến của tôi không bao giờ có giá trị.

Thường thì tôi bàn ra rất nhiều. Những cái tôi bàn ra là để cảnh báo những người khác: không hẳn thấy làm được có nghĩa là đúng đường.
Những lời tôi bàn chỉ nhắm vào ngừoi công nhân chở hàng. Chịu khó đi đúng đường đúng lối thì sẽ tránh được nhiều rắc rối về sau.
 
Lần chỉnh sửa cuối:
Nếu chạy nhiều lần nó đâu "add" thêm nhiều cột giống nhau đâu anh. Bởi vì nó đâu cho thêm cột có tên trùng.

Theo lý thuyết SQL chia ra làm 2 hạng, hạng chính là dùng để truy vấn và chỉnh sửa dữ liệu (data), hạng kia dùng để truy vấn và chỉnh sửa hạ tầng cơ sở dữ liệu (metadata)

Lệnh "add" thêm trường vào bảng làm thay đổi cấu trúc bảng. Nó thuộc về loại thứ hai. Loại này cốt chỉ dùng trong giao diện trực tiếp với CSDL. Hoặc người quản lý chạy nó trong một script.

Muốn chạy trong phần mềm cũng được nhưng điều này chỉ giành cho dân rất quen thuộc với CSDL. Khi sử dụng phải biết qua các loại Query truy vấn metadata. Điển hình là phải "hỏi trước" bảng có trường ấy hay không trước khi "add"
 
Cám ơn Thầy - Hai Lúa Miền Tây. E có thể hiểu là đây là cách dùng code để add field vào Table, sau đó vẫn phải chạy Query để update dữ liệu vào cột mới thêm đó phải không Thầy?!

Có cách nào mà trong Query - Design view mình có thể vừa add field vừa update không Thầy?! Đại loại giống như mình dùng "Expr1: [table1].[field1]" trong Query đó Thầy?!

[Em chỉ hỏi để tìm hiểu thêm! :)]

(Em đã tham gia khóa học với Thầy, có tgian sẽ lại đăng ký học nữa. Rất bổ ích!)
Theo tôi được biết thì thêm cột vào bảng ta không thể cho chung vào với update query. Bạn đã biết cách lấy tên cột rồi thì nên dùng code dò xem cột bạn mong muốn có hay không, nếu không có thì cho chạy cái Query trên rồi sau đó chạy update query. Còn ngược lại thì bạn chỉ cần chạy cái update query là xong.
 
Theo tôi được biết thì thêm cột vào bảng ta không thể cho chung vào với update query. Bạn đã biết cách lấy tên cột rồi thì nên dùng code dò xem cột bạn mong muốn có hay không, nếu không có thì cho chạy cái Query trên rồi sau đó chạy update query. Còn ngược lại thì bạn chỉ cần chạy cái update query là xong.

Không hẳn đơn giản vậy đâu. Code của bạn phải đọc cái "schema" để biết cái cột đó được xây dựng như thế nào. Ví dụ mặc định nó là null hay 0/""; nó có phải là foreign key hay không... (primary key không cho chỉnh sửa nên không tính). Nguy hiểm nhất là trường hợp bảng đã có sẵn trường cùng tên, nhưng khác mục đích.

Chú: Access còn nhẹ chứ mấy cái khác (như SQL Server) nó khủng bỏ xừ, còn index, triggers tùm lum.
Cái kiểu yêu cầu này theo lý thuyết CSDL LH thì nó nghjch chuẩn bậc 2. Người biết sử dụng CSDL LH chỉ dùng view (trong Access là Query)
 
Không hẳn đơn giản vậy đâu. Code của bạn phải đọc cái "schema" để biết cái cột đó được xây dựng như thế nào. Ví dụ mặc định nó là null hay 0/""; nó có phải là foreign key hay không... (primary key không cho chỉnh sửa nên không tính). Nguy hiểm nhất là trường hợp bảng đã có sẵn trường cùng tên, nhưng khác mục đích.

Chú: Access còn nhẹ chứ mấy cái khác (như SQL Server) nó khủng bỏ xừ, còn index, triggers tùm lum.
Cái kiểu yêu cầu này theo lý thuyết CSDL LH thì nó nghjch chuẩn bậc 2. Người biết sử dụng CSDL LH chỉ dùng view (trong Access là Query)
Dĩ nhiên khi đụng đến cấu trúc CSDL cần phải xét nhiều điều kiện. Tuy nhiên với bài toán trên đây thì em nghĩ như thế là đã giải quyết được rồi anh.
 
Web KT
Back
Top Bottom