#mysql #sql
Помогите, пожалуйста, просто составить запрос-образец. Есть первая таблица, в которой есть столбцы спортсмен и серийный_номер_велосипеда. Вторая таблица: серийный_номер_велосипеда, цвет, год_выпуска. Какой будет единый запрос, чтобы выбрать спортсмен, серийный_номер_велосипеда, цвет, год_выпуска?
Ответы
Ответ 1
Используйте соединение таблиц: Если список серийных номеров велосипеда в обеих таблиц совпадает (нет таких элементов, которые есть в одной таблице, но нет во второй), то можете использовать внутреннее соединение join (inner join): SELECT s.sportsman, s.serial, b.color, b.year FROM sportsmen s JOIN bike b ON s.serial = b.serial Пример таблицы на sqlfiddle Результат выполнения запроса Либо: SELECT s.sportsman, s.serial, b.color, b.year FROM sportsmen s, bike b WHERE s.serial = b.serial Результат выполнения запроса Если список серийных номеров велосипедов не совпадает, то при соединении таблиц с помощью внутреннего соединения inner join (join) можно потерять нужные строки, поэтому для сохранения всех строк в левой таблице надо использовать left join: SELECT s.sportsman, s.serial, b.color, b.year FROM sportsmen s LEFT JOIN bike b ON s.serial = b.serial Пример таблицы на sqlfiddle Результат выполнения запросаОтвет 2
SELECT с.спортсмен, в.серийный_номер_велосипеда, в.цвет, в.год_выпуска FROM спортсмен с LEFT JOIN велосипед в ON с.серийный_номер_велосипеда = в.серийный_номер_велосипеда;Ответ 3
Вам нужна инструкция left join select t1.*, t2.color, t2.year from t1 left join t2 on t1.serial_num = t2.serial_num
Комментариев нет:
Отправить комментарий