Запрос двух баз данных с таблицей карт - PullRequest
0 голосов
/ 29 октября 2011

Я выдернул свои волосы над этим ... и я уверен, что он достаточно простирается вперед ... но я не могу найти ответ.

То, что я пытаюсь сделать, это извлечь информацию из двух таблиц. Я довольно новичок в JOIN. Я предполагаю, что в качестве практического примера, скажем, у меня есть база данных книг (идентификатор, название, автор, издание, год). Тогда у меня есть база данных классов (идентификатор, предмет, учитель). Некоторые классы будут использовать одну и ту же книгу. Итак, я создал таблицу карт, как описано здесь:

Select-запросов / Joinamanytomanymaptable.htm "> http://www.java2s.com/Tutorial/MySQL/0040_Select-Query/Joinamanytomanymaptable.htm

Я создал таблицу с именем ClassBook, в которой идентификатор класса (ClassID) указан в одном столбце, а идентификатор книги (BookID) - в другом.

я хочу нарисовать информацию о КНИГЕ в зависимости от класса. Поэтому, если идентификатор класса равен 3, я хочу, чтобы все книги, связанные с этим классом, и их информация. Ниже приведен пример того, что я запрашиваю:

ВЫБРАТЬ * ИЗ ClassBook ПРИСОЕДИНЯЙТЕСЬ к книгам ON ClassID = 3

Из этого запроса: если идентификатор класса (3) находится в таблице (ClassBook) 8 раз, он выдаст КАЖДУЮ книгу и ее информацию 8 раз. Все, что я хочу, - это книги, связанные с идентификатором класса 3, и их информация. Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 29 октября 2011
SELECT * FROM class
JOIN ClassBook on class.id = ClassBook.ClassID
JOIN books on ClassBook.BookID = books.id
WHERE Class.ID = 3;

Это формат, который вы будете использовать для связывания всего воедино. Обратите внимание, что предложение on обычно помещается с описанием критериев, которые связывают соединяемые таблицы. Предложение where предназначено для ограничения выбранных записей.

0 голосов
/ 29 октября 2011

Попробуйте это

SELECT books.* FROM ClassBook CB
JOIN books ON  CB.bookid=Books.id
WHERE cb.ClassID=3 

Объединение создаст больший "результат" всех столбцов из таблицы книги классов и всех столбцов из таблицы книги, которые имеют один и тот же номер идентификатора книги ... ГДЕтогда предложение показывает только результаты из того большего результата, что и книги, используемые в ClassID = 3.Синтаксис books. * Показывает только столбцы из таблицы books, a * сам по себе отображает все столбцы из обеих таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...