Продвижение

Продающий сайт

партнерские программы

MySQL Выборка из таблицы по условию из другой таблицы, использование оператора JOIN

Исходные данные:
Например имеем 2 таблицы t1 и t2
в t1 имеем столбцы id, name и cid (записано соответствие названия номеру и цвету)
таблица1:t1

id name cid
1 ластик 1
2 шариковая ручка 2
3 циркуль 2
4 шариковая ручка 1
5 тетрадь 5

в t2 имеем столбцы id и color (записаны названия цветов)
таблица2:t2

id color
1 ярко-синий
2 красный
3 чёрный

Например, ставится задача выбрать получить список всех "ярко-синих" записей с названием "шариковая ручка"

SELECT * FROM t1 JOIN t2 ON t2.id = t1.cid WHERE t2.id = 1 AND t1.name = "шариковая ручка"
разбираем этот запрос:
SELECT * FROM t1 // Выбрать все столбцы и строки из таблицы t1
JOIN t2 ON t2.id = t1.cid // по связи столбца cid таблицы t1 со столбцом id таблицы t2
WHERE t2.id = 1 AND t1.name = 'шариковая ручка' // где cid=1 ("ярко-синий") и name="шариковая ручка"
можно вместо t2.id = 1 использовать t2.color = "ярко-синий"
результат будет одинаковый, только выполнится за разное время.

Вот таким запросом, можно из Drupal вытащить активные страницы:
SELECT node_revisions.title,node_revisions.body,node.status FROM node_revisions inner join node on node.nid = node_revisions.nid WHERE node.type='page' AND node.status=1

А таким вытащить основной контент с Joomla:
SELECT id,title,introtext,catid,state,modified,metakey,metadesc,alias FROM content

Подписка

RSS-материал


Яндекс.Метрика