2010-11-14 4 views
4

Я был в тупик на этом, как я новичок в MySql.MYSQL выбор запроса на основе других таблиц записей

Вот основная того, как две таблицы формируются

Таблица 1 ID, PRODUCT_ID, product_name

Таблица 2 ID, product_id, активный

Теперь я знаете, как сделать оператор select, чтобы запрашивать результаты из одной таблицы, но когда мне нужно задействовать два, я теряюсь. Не уверен, что мне нужно использовать внутреннее соединение, левое соединение и т. Д.

Так как я могу вернуть результаты product_id из таблицы 1, только если в таблице 2 активен?

+0

Также поднимите принятые ответы. Его вежливый способ сказать спасибо. – taxeeta

ответ

2

Это довольно просто, чтобы объединить две таблицы:

select t1.* 
from Table1 t1 
join Table2 t2 on t1.product_id = t2.product_id 
where t2.active = 'Y' 
4

Вы можете использовать JOIN (как Fosco указал), но вы можете сделать то же самое в ИНЕКЕ. Я заметил, что это немного более интуитивный метод, чем JOIN специально для тех, кто изучает SQL. Этот запрос объединяет две таблицы в соответствии с product_id и возвращает те активные продукты. Я предполагаю, что «active» является логическим типом.

SELECT t1.* 
FROM Table1 t1, Table2 t2 
WHERE t1.product_id = t2.product_id AND t2.active = TRUE 

W3Schools имеет хорошее учебное пособие по базовому уровню различных типов JOIN. См. INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN.