Как получить значение по id в связанных таблицах в бд?
Есть множество количество id, нужно узнать к каждому из них соответствующие значения. Каждое id относиться к той или иной таблице.
К примеру:
books:
id: 1, name: 'a', author_id: 1
id: 2, name: 'b', author_id: 2
authors:
id: 1, name: 'aa'
id: 2, name: 'bb'
Нужно узнать значение books.author, точнее author.name. Также нужно и обратно, зная значение, найти id, к которому оно относиться (указываем, к какой таблице относиться значение).
Как реализовать такой код? нужны ли для это joins?
желательно соблюдать рекомендации по именованию полей и таблиц:
1) так как поле author очевидно является связью по id с таблицей author, ее название должно быть author_id,
2) таблица с авторами должна называться во множественном числе - authors.
так как поле author очевидно является связью по id с таблицей author, ее название должно быть author_id
То же самое относится и к самой таблице author - ключ в ней тоже надо называть author_id. Во-первых, в запросе не придётся гадать, чей id, во-вторых, можно вместо JOIN ON использовать более очевидный JOIN USING. А иногда и вовсе NATURAL JOIN.
Akina, тут спорно, так как ид у нас именно первичный автоинкремент, и мы знаем имя таблицы, то смысла называть его автор_айди отпадает, это же не пивот...
по документации. Определите как связаны таблицы и сделайте джоин по связанным полям.
Похоже что вы пытаетесь сделать домашку силами сообщества, что во первых нарушает правила ресурса, а во вторых не несет никакого смысла, какое после этого может быть обучение...
ThunderCat, это практика, на основе забытого обучения. Я поняла как это делать после написания вопроса, хотела уточнить, как улучшить код, поэтому и спросила по поводу join. Да, лучше перечитать теорию