2011-09-20 3 views
1

Je suis dans une situation, c'est-à-dire dans une table où j'ai des colonnes Course, Semester and University, dans une autre table j'ai Book Number, Author, Booktitle, Publication and Year. Pour chaque cours, chaque semestre et chaque université le livre diffère (c'est-à-dire, Book Number, Author, Booktitle, Publication), ce que je dois faire est basé sur le cours, le semestre et l'université, je dois récupérer les valeurs de Book Number, Author, Booktitle and Publication. c'est-à-dire que je fais B.E. Mech, signifie la deuxième année, les valeurs de récupération du numéro du livre, de l'auteur, du titre du livre et de la publication doivent correspondre à B.E. Mécanique, livres de 2e année.Comment écrire la requête

+0

Je ne vois pas comment vos deux tables sont liées? –

+0

En utilisant la clé étrangère, j'ai lié ces deux tables –

+2

Veuillez fournir vos définitions de table réelles séparément du texte principal afin que nous puissions les voir facilement et connaître leurs noms. 'CREATE TABLE Foo (Course char (4))'. Je ne vois aucun FK évident entre eux dans votre description textuelle. –

Répondre

0

D'après ce que je comprends, il peut y avoir plus de Une combinaison cours/semestre/université pour un livre et probablement plus d'un livre par cours/semestre/université? Ceci est une relation many-to-many et ne peut être résolu par une troisième table:

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

Lorsque ce tableau est rempli, utilisez deux 'LEFT JOIN relations dans vos requêtes:

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

Vous devez avoir un Colum commun dans les deux exemple tables.For ajoutant course_id dans les deux tables, de sorte que vous pouvez joindre à deux tables en utilisant cette Colum commune

0

Dans votre première table , ajoutez une colonne Book_number. Cela fournira une correspondance entre les deux tables. Ensuite, vous pouvez écrire la requête comme

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

Vous voulez une table de liaison parce que les livres et les cours (probablement) un grand nombre à plusieurs. Vous aurez donc Courses_Books avec une colonne CourseID et BookID.

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