Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Câu lệnh sql tham chiếu đến bảng khác để hiển thị tên, thay vì hiển thị ID

  1. #1
    Ngày gia nhập
    09 2010
    Bài viết
    276

    Mặc định Câu lệnh sql tham chiếu đến bảng khác để hiển thị tên, thay vì hiển thị ID

    Title có vẻ hơi lằng ngoằng nhỉ, nhưng chẳng biết đặt thế nào nữa :(. Mong mod thông cảm cho. Vấn đề của mình là thế này. Mình có một bảng như sau.
    Database Code:
    1. create table HOCSINH
    2. (
    3.     MaHocSinh       VARCHAR (6)     NOT NULL    PRIMARY KEY,
    4.     HoTen           NVARCHAR (30)   NOT NULL,
    5.     GioiTinh        BIT,
    6.     NgaySinh        DATETIME,
    7.     NoiSinh         NVARCHAR (50)   NOT NULL,
    8.     MaDanToc        VARCHAR (6)     NOT NULL,
    9.     MaTonGiao       VARCHAR (6)     NOT NULL,
    10.     HoTenCha        NVARCHAR (30)   NOT NULL,
    11.     MaNNghiepCha    VARCHAR (6)     NOT NULL,
    12.     HoTenMe         NVARCHAR (30)   NOT NULL,
    13.     MaNNghiepMe     VARCHAR (6)     NOT NULL,
    14.    
    15.     -- Foreign key
    16.     constraint F_HS_MaDanTo foreign key(MaDanToc) references DANTOC(MaDanToc),
    17.     CONSTRAINT F_HS_TG  FOREIGN KEY(MaTonGiao)      REFERENCES TONGIAO(MaTonGiao),
    18.     CONSTRAINT F_HS_NNC FOREIGN KEY(MaNNghiepCha)   REFERENCES NGHENGHIEP(MaNghe),
    19.     CONSTRAINT F_HS_NNM FOREIGN KEY(MaNNghiepMe)    REFERENCES NGHENGHIEP(MaNghe)
    20. )
    Bây giờ mình muốn show bảng này lên datagirdview nhưng những trường là khóa ngoại khia mình không muốn show cái ID mà show tên của nó lên. Các bạn hướng dẫn hộ mình viết câu sql thế nào với. Cảm ơn các bạn nha.

  2. #2
    Ngày gia nhập
    07 2010
    Bài viết
    288

    giả sử cấu trúc học sinh có các trường giống như tên bảng
    Code:
    HocSinh hs
    string str= "select TenDanToc from DanToc where MaDanToc="+hs.MaDanToc;

    mấy cái nghề nghiệp cha, mẹ làm tương tự
    Em bảo: "Anh đi đi"
    Sao anh không đứng lại?
    Em bảo: "Anh đừng đợi"
    Sao anh vội về ngay?

  3. #3
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi nguoirung1.6 Xem bài viết
    Title có vẻ hơi lằng ngoằng nhỉ, nhưng chẳng biết đặt thế nào nữa :(. Mong mod thông cảm cho. Vấn đề của mình là thế này. Mình có một bảng như sau.
    Database Code:
    1. create table HOCSINH
    2. (
    3.     MaHocSinh       VARCHAR (6)     NOT NULL    PRIMARY KEY,
    4.     HoTen           NVARCHAR (30)   NOT NULL,
    5.     GioiTinh        BIT,
    6.     NgaySinh        DATETIME,
    7.     NoiSinh         NVARCHAR (50)   NOT NULL,
    8.     MaDanToc        VARCHAR (6)     NOT NULL,
    9.     MaTonGiao       VARCHAR (6)     NOT NULL,
    10.     HoTenCha        NVARCHAR (30)   NOT NULL,
    11.     MaNNghiepCha    VARCHAR (6)     NOT NULL,
    12.     HoTenMe         NVARCHAR (30)   NOT NULL,
    13.     MaNNghiepMe     VARCHAR (6)     NOT NULL,
    14.    
    15.     -- Foreign key
    16.     constraint F_HS_MaDanTo foreign key(MaDanToc) references DANTOC(MaDanToc),
    17.     CONSTRAINT F_HS_TG  FOREIGN KEY(MaTonGiao)      REFERENCES TONGIAO(MaTonGiao),
    18.     CONSTRAINT F_HS_NNC FOREIGN KEY(MaNNghiepCha)   REFERENCES NGHENGHIEP(MaNghe),
    19.     CONSTRAINT F_HS_NNM FOREIGN KEY(MaNNghiepMe)    REFERENCES NGHENGHIEP(MaNghe)
    20. )
    Bây giờ mình muốn show bảng này lên datagirdview nhưng những trường là khóa ngoại khia mình không muốn show cái ID mà show tên của nó lên. Các bạn hướng dẫn hộ mình viết câu sql thế nào với. Cảm ơn các bạn nha.
    Thường thì phải liên kết mấy bảng lại với nhau. Nhưng mình chơi kiểu truy vấn con. Viết thế này:

    Select Hoten,
    ngaysinh,
    ....
    (select tenDanToc from DanToc DT where DT.MaDAnToc=HS.MaDanToc) as TenDanToc
    ......
    from HocSinh HS
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Người ta hỏi câu căn bản thế này là vốn về lý thuyết CSDL LH chưa được bao nhiêu. Các cụ chơi ác quá

    Dùng truy vấn con là kỹ thuật dồn liên hệ hàng ngang (normalised relation) thành liên hệ cấp bậc ([reversed] hierarchial relation)

    Câu truy vấn căn bản thế này thì dùng liên kết qua khóa ngoại - đó là nhiệm vụ của mấy cái khóa ngoại.

    SQL Code:
    1. SELECT HOCSINH.HoTen, HOCSINH.GioiTinh, HOCSINH.NgaySinh, HOCSINH.NoiSinh, HOCSINH.HoTenCha, HOCSINH.HoTenMe,
    2. DANTOC.TenDanToc, TONGIAO.TenTonGiao, NGHENGHIEP1.TenNghe AS NgheCha, NGHENGHIEP2.TenNghe AS NgheMe
    3. FROM HOCSINH INNER JOIN DANTOC ON HOCSINH.MaDanToc = DANTOC.MaDanToc
    4. INNER JOIN TONGIAO ON HOCSINH.MaTonGiao = TONGIAO.MaTonGiao
    5. INNER JOIN NGHENGHIEP AS NGHENGHIEP1 ON HOCSINH.MaNNghiepCha = NGHENGHIEP1.MaNghe
    6. INNER JOIN NGHENGHIEP AS NGHENGHIEP2 ON HOCSINH.MaNNghiepMe = NGHENGHIEP2.MaNghe
    7. -- phải join bảng nghề 2 lần, 1 lần cho cha và 1 lần cho mẹ, đòng thời phải đặt tên tự cho 2 bảng để tránh lẫn lộn

    @nguoirung1.6:
    Cái này có liên quan gì đến C# đâu. Đem qua bên CSDL mà hỏi
    Hình như có mấy người không bao giờ đi quá hộp C#, vấn đè gì cũng đem hỏi ở đây

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hix! Ác gì đâu bác. T thấy dùng bình thường mà. T có nói cả 2 cách còn gì.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

Các đề tài tương tự

  1. Kiểu string trong c# là tham chiếu hay tham trị ???
    Gửi bởi thvnhn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 04-11-2013, 08:38 PM
  2. Cơ sở làm huy hiệu, bảng tên nhân viên, bảng tên mica, bảng tên ăn mòn, bảng tên thay tên
    Gửi bởi tranngocson186 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-05-2013, 08:37 AM
  3. Trả lời: 9
    Bài viết cuối: 16-12-2012, 10:54 AM
  4. Bài tập C Bài tập tính lãi ngân hàng dùng đệ quy hoặc tham chiếu, tham trị
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2012, 08:24 AM
  5. Phân biệt truyền biến bằng tham trị, tham chiếu, địa chỉ. Xin cảm ơn.
    Gửi bởi thaoha trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 18-02-2012, 02:03 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn