2013-10-08 2 views
1

Я хочу выбрать строки из таблицы (продуктов), но эта таблица связана с другой (складом) с помощью оператора JOIN.Как сравнить поля из разных таблиц

В таблице продуктов есть 2 важных поля, SKU и minimum_stock. Есть в наличии таблица SKU (отношение к продуктам) и qty

Теперь я хочу выбрать строки из продуктов, только если в таблице есть SKU, а qty -> minimum_stock из продуктов.

Как это:

SELECT * 
FROM products 
INNER JOIN stock ON products.SKU = stock.SKU 
WHERE products.minimum_stock.value > stock.qty.value; 

Очевидно, что этот код не работает.

Может кто-нибудь мне помочь?

Заранее спасибо.

+0

'products.minimum_stock.value' собирается быть interepreted в качестве базы данных' 'продуктов, таблицы' minimum_stock', поле 'value'. поскольку вы выбираете из 'productos' и' stock', вы используете таблицы/поля, которые не существуют. –

+0

Что это такое? удалите его –

ответ

1

Если таблицы выглядят следующим образом:

продукция:

  • SKU
  • minimum_stock
  • (... другие столбцы ...)

склад

  • SKU
  • шт
  • (... другие столбцы ...)

Ваш запрос не должен иметь .Value в конце колонны. Фактически, это то, что сделало бы это неработоспособным.

ли что-то вроде:

SELECT * 
FROM products 
INNER JOIN stock ON products.SKU = stock.SKU 
WHERE products.minimum_stock > stock.qty; 

SQL Fiddle Demo

+0

Ну, я думал, что это будет сложнее, спасибо большое, прямо сейчас работает мой код. – Alan

+0

@Alan. Отлично. Если вам кажется, что этот ответ помог, рассмотрите [принятие его как правильное] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) –

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