2011-09-20 4 views
1

하나의 테이블에 하나의 상황, 즉 Course, Semester and University 개의 열이 있는데 다른 테이블에있는 테이블은 Book Number, Author, Booktitle, Publication and Year입니다. 각 과정에 대해 각 학기와 각 책이 다른 대학 (예 : Book Number, Author, Booktitle, Publication)에 대해 내가해야 할 일은 과정, 학기 및 대학에 따라 달라 지므로 Book Number, Author, Booktitle and Publication 값을 검색해야합니다. ie 나는 B.E.를하고있다. Mech, 2nd year는 Book Number, Author, Booktitle 및 Publication의 검색 값이 B.E.에 해당해야 함을 의미합니다. 기계, 2 학년 도서. 당신보다 내가 이해에서이 일반적인 콜 럼쿼리 작성 방법

+0

두 테이블이 연결되는 방식을 볼 수 없습니까? –

+0

외래 키를 사용하여 그 두 테이블을 연결했습니다. –

+2

실제 텍스트 정의를 주 텍스트와 별도로 제공하여 쉽게 볼 수 있고 이름을 알 수 있습니다. 'CREATE TABLE Foo (코스 숯불 (4))'. 나는 당신의 텍스트 설명에서 그들 사이에 명백한 FK를 볼 수 없다. –

답변

0

를 사용하여 두 테이블을 조인 할 수 있도록

0

당신은, 두 테이블 모두 tables.For의 예를 추가 Course_ID에의 일반적인 콜 럼이 있어야보다 더있을 수 있습니다 학기당/학기당/대학 당 하나의 책을위한 하나의 학기/학기/대학교 조합 및 아마도 한 학기/학기/대학 당 하나 이상의 책? 이것은 many-to-many 관계입니다 만 세 번째 테이블에 의해 해결 될 수있다 :

CsuToBooks 
---------- 
CsuID 
BookID 

이 표가 작성되면,이 쿼리의 관계를 '좌 가입'사용

SELECT Course, Semester, University, BookNumber 
FROM csu 
LEFT JOIN CsuToBooks ON (csu.ID = CsuToBooks.csuID) 
LEFT JOIN Books ON (CsuToBooks.BookID = Books.ID) 
0

를 첫 번째 표에서 Book_number 열을 추가하십시오. 이것은 2 개의 테이블 사이의 매핑을 제공합니다. 은 그럼 당신은 (아마도) 책과 과정은 다 대다 관계를 가지고 있기 때문에 당신은 연결 테이블을 할 것입니다

Select * from book_table 
where book_table.book_number = course.book_number 
     AND course.course = <course name> 
     AND course.Semester = <semester> 
     AND course.university = <university 
0

같은 쿼리를 작성할 수 있습니다. 따라서 CourseID 및 BookID 열이있는 Courses_Books를 갖게됩니다.

0
SELECT 
    booknumber, 
    author, 
    booktitle, 
    publication 
FROM 
    table1, 
    table2 
WHERE 
    course = 'mech' AND semester = 4