2012-02-10 4 views
0

У меня есть 2 стола, в которых хранятся цены на продукт.Запрос цены SQL-запроса

Главный стол Product который имеет все детали продукта.

Стоимость продукции в настоящее время хранится в двух разных таблиц со следующими структурами:

  • вариант:p_id, price.
  • advance_price:p_id, price.

Теперь я хочу объединить эти таблицы, чтобы получить все цены на продукт.

Примечание: один товар имеет цену в variant стол или advance_price стол. Не обе таблицы.

Ищу результат, как это:

product.id, price 

(это может быть из variant таблицы или таблицы) advance_price

Любые идеи будут оценены.

ответ

3

Что вам нужно, чтобы COALESCE() цен из двух таблиц, с соответствующим присоединяется:

SELECT 
    Product.p_id, 
    COLAESCE(variant.price, advance_price.price) AS price 
FROM 
    Product 
    LEFT JOIN variant ON Product.p_id = variant.p_id 
    LEFT JOIN advance_price ON Product.p_id = advance_price.p_id 

COALESCE() займет первое ненулевое значение своих аргументов. LEFT JOIN используется в случае, если в таблице variant или advance_price не существует записей для данных p_id.

+0

Благодарим вас за помощь. Это решило мою проблему. – jbcedge

Смежные вопросы