ProfiPHPProfiPHP
  1. Главная
  2. Полезное в PHP
  3. Выбор данных из нескольких таблиц в SQL

Выбор данных из нескольких таблиц в SQL

В большинстве случаев простые запроси обращаются к одной таблице. Но значительную популярность языку SQL прибавила возможность в одном запросе обращаться к нескольким таблицам.

Допустим, мы имеет таблицу CAR:
Id    brand
----- ------
1 bmw
2 audi
3 skoda
и таблицу COLOR:
Id    rgb
----- ------
1 #0000FF
2 #FFFF00
3 #00FFFF
Для записи полного имени столбца в таблице необходимо записать имя таблицы, за которым идет точка и имя столбца. Примеры имен:
color.`rgb`,
car.`brand`
Предположим вы хотите увидеть комбинации цветов и брендов машин. Это делается следующим образом:
SELECT
color.`rgb`,
car.`brand`
FROM
`color`,
`car`
Результатом данного поиска будет:
#0000FF    bmw
#FFFF00 bmw
#00FFFF bmw
#0000FF audi
#FFFF00 audi
#00FFFF audi
#0000FF skoda
#FFFF00 skoda
#00FFFF skoda
Как видно из результата, SQL Server перебирает все возможные варианты комбинации двух таблиц.

Также можно указать условие поиска:
SELECT
color.`rgb`,
car.`brand`
FROM
`color`,
`car`
WHERE
car.`brand` = 'bmw' AND color.`rgb` = '#00FFFF'
Результатом данного выражения будет строка:
#00FFFF    bmw
Можно использовать не полное название таблиц, а их краткие обозначение, которое необходимо добавить после названия таблиц после FROM:
SELECT
cl.`rgb`,
cr.`brand`
FROM
`color` cl,
`car` cr
WHERE
cr.`brand` = 'bmw' AND cl.`rgb` = '#00FFFF'"
Благодаря данной реализации можно строить запросы к нескольким таблицам одновременно. Но стоить понимать, что запросы нужно оптимизировать и находить самый оптимальный вариант, который покажет самое лучшее быстродействие.

Добавить комментарий

Имя:
Текст комментария: