PDA

View Full Version : cho em hỏi câu lệnh select giữa 2 table?



khongyeu09
18-03-2011, 01:04
Giả sử em có 2 table như sau:
http://yam.name.vn/img/hoi.gif
table [comment] có [sanphamid] là [id] của table [sanpham]
vậy cho em hỏi câu lệnh select * từ table [comment] nhưng phải phụ thuộc vào [id] của table [sanpham] là gì ạ!?
giống như vầy nè:

select * from comment where sanphamid = .... cái gì đây em chịu
giúp em với! em đang làm mục comment cho site! nhưng em không bít câu lệnh để select cho nó hiện đúng với bài mình đã comment! em đăng comment được nhưng khi show thì nó hiện ở tất cả các sản phẩm! anh chị coi thử đây ạ http://yam.name.vn/thiep/?ID=26 hic!
giúp em ạ! thanks nhìu ạ!

tam_giang
18-03-2011, 06:07
1. Bạn có hiểu * sau Select là gì không ?
2. sanphamid = .... phải chọn một cái gì đó trong bảng,

khongyeu09
18-03-2011, 07:16
ẹc! thì em đang muns hỏi sanphamid = cai gì để nó show đúng cái mình muốn mà :|! con * là lấy tất cả :|:|:|

megaownage
18-03-2011, 07:44
Căn bản của SQL là phải biết rõ mình muốn lấy dữ liệu gì trong CSDL

Căn bản của câu hỏi là cái gì rắc rối quá thì phải đưa ra thí dụ cụ thể.

Chẳng hiểu bạn muốn cái gì. Đưa ra ví dụ vài dòng của report thì may ra có thể hiểu được

tam_giang
18-03-2011, 08:10
ẹc! thì em đang muns hỏi sanphamid = cai gì để nó show đúng cái mình muốn mà :|! con * là lấy tất cả :|:|:|
Bạn không biết cái mình muốn thì làm sao tôi ở cách bạn hơn 8 giờ bay mà biết được ? Trong cái table đó bạn muốn cái gì ???

khongyeu09
18-03-2011, 08:11
ec thế này nha!
gỉa sử em coi bài này: http://yam.name.vn/thiep/?ID=26 (bài này đăng ở table [sanpham] có [26] khi comment nó sẽ insert số [26] vào [sanphamid] của table [comment]! vậy bây giờ em muốn nó show cái nội dung comment đó ở ngay đúng cái bài có ID = 26 đó thì làm sao!?
giống như câu lệnh này nè!

select ndcm from comment where id = 26
nhưng là sao để cái số 26 nó tùy biến theo cái ID của bài viết ấy ạh!?

chip07
18-03-2011, 16:59
-- try again
-- T-SQL

-- điều kiện đơn giản khi biết rõ sanphamID
declare @id bigint

SELECT tennguoicm, ngaycm, ndcm
FROM [comment]
WHERE sanphamid = @bigint

-- OR điều kiện tùy thuộc vào thuộc tính trên bảng [sanpham]
declare @cond nvarchar(255)

SELECT tennguoicm, ngaycm, ndcm
FROM [comment] INNER JOIN [sanpham] ON [comment].sanphamid = [sanpham].id
WHERE [sanpham].tensanpham LIKE @cond

Khi code, bạn thực hiện câu lệnh trên như bất kỳ câu lệnh select nào khác, với @id/@cond là biến bất kỳ.

serivn
18-03-2011, 17:42
ec thế này nha!
gỉa sử em coi bài này: http://yam.name.vn/thiep/?ID=26 (bài này đăng ở table [sanpham] có [26] khi comment nó sẽ insert số [26] vào [sanphamid] của table [comment]! vậy bây giờ em muốn nó show cái nội dung comment đó ở ngay đúng cái bài có ID = 26 đó thì làm sao!?
giống như câu lệnh này nè!

select ndcm from comment where id = 26
nhưng là sao để cái số 26 nó tùy biến theo cái ID của bài viết ấy ạh!?

Hihi, nghe bạn nói thì thấy bạn hiểu rồi mà sao bạn lại hỏi nhỉ...:D

Vấn đề là thế này, ở đây vấn đề là bạn dùng cách thức nào để truy vấn dữ liệu từ CSDL. Ví dụ bạn có thể dùng Store Procedure hoặc có thể tạo câu truy vấn SQL ngay trong chương trình. Trong cả hai trường hợp này thì bạn đều cần tới thông tin về SanPhamId đúng ko. Cụ thể thì bạn chỉ cần lấy nó từ QueryString là song mà, cái này chắc bạn biết:


int sanphamid;
if(Request.QueryString["ID"]!=null)
sanphamid=int.parse(Request.QueryString["ID"].ToString());
//OK