sql. Прошу помочь разобраться с запросом

программирование sql база данных бд реляционные бд

есть 2 таблицы:
first_table: id, name
second_table: first_table_id, second_table_id, name

как мне выбрать name из второй таблицы, по first_table_id, зная лишь name нужной мне строки в первой таблице.

и скажите сразу, если я не правильно базу составил, а то я не так давно связался с sql

Примечание:
NetRain, скажи ещё, пожалуйста, нормально ли так составлять таблицы, где внешний ключ - id, но данные выбираются почти всегда основываясь на другом параметре?

Примечание:
спасибо
Ответы:
SELECT t2.name FROM `first_table` AS `t1` INNER JOIN `second_table` AS `t2` ON t2.first_table_id = t1.id WHERE t1.name = 'значение'
Внешний ключ нужен для поддержания целостности и для осуществления быстрой выборки связанных записей (дочерних тобишь). Это не означает, что все выборки должны производиться по foreign key или primary key — задачи бывают совершенно разные, а сложный поиск по критериям зачастую к ключам не сведешь. На этот случай придумали просто индексы (которые не ключи, но могут быть или не быть уникальными). И даже их не всегда стоит использовать (слишком много различных индексов в одной таблице тоже не всегда хорошо — их ведь и перестраивать приходится, да и СУБД может случайно выбрать не самый подходящий индекс для выборки, если он не был указан в запросе явно).


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.