Прошу помощи, запрос к двум таблицам бд, сравнение одинаковых полей, выборка одного поля.

SKirill
Дата: 19.12.2012 18:08:08
Добрый день.

Помогите пожалуйста составить запрос на выборку к таблицам базы данных:
Что есть 1 табл:equipment:
поля id(int), equip(varchar), type(varchar)
2 табл. dewars:
id(int), volume(float), equpitype(enum), ....

Выбираю значения селектом, застрял на выборке поля volume из второй табл. при сравнении двух полей type = equiptype(они равны в данном запросе).
Вот что я делаю: ("SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE 'volume' ")
Селект выдает пустое поле. Прошу сильно не пинать, т. к. в этом деле я совсем ещё новичок.
trew
Дата: 19.12.2012 18:17:47
SKirill,

Посмотрите синтаксис LIKE в хелпе.
И когда соединяете две таблицы по полям, желательно чтобы у них совпадали типы полей.
SKirill
Дата: 19.12.2012 18:34:48
trew
SKirill,

Посмотрите синтаксис LIKE в хелпе.
И когда соединяете две таблицы по полям, желательно чтобы у них совпадали типы полей.


Так вы считаете что несовпадение по типам полей не выдает мне выборку поля?
Там на выходе одинаковые текстовые значения.
SKirill
Дата: 19.12.2012 18:39:07
SKirill
trew
SKirill,

Посмотрите синтаксис LIKE в хелпе.
И когда соединяете две таблицы по полям, желательно чтобы у них совпадали типы полей.


Так вы считаете что несовпадение по типам полей не выдает мне выборку поля?
Там на выходе одинаковые текстовые значения.


Я хотел сказать про поля type и equiptype - текстовые значения
trew
Дата: 19.12.2012 21:43:58
исходный запрос:
SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE 'volume'

можно упростить запрос и проверить:
SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype

SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE 'volume%'

SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE '%volume%'

SKirill
Так вы считаете что несовпадение по типам полей не выдает мне выборку поля?

это влияет на скорость выполнения запроса, если есть индексы на полях.
SKirill
Дата: 20.12.2012 20:58:18
trew
исходный запрос:
SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE 'volume'

можно упростить запрос и проверить:
SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype

SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE 'volume%'

SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = a.equiptype WHERE b.type LIKE '%volume%'

SKirill
Так вы считаете что несовпадение по типам полей не выдает мне выборку поля?

это влияет на скорость выполнения запроса, если есть индексы на полях.


Уважаемый trew, у меня все равно никак не получается вывести строку volume(float)(!там числовые значения) при условии что в предыдущем селекте выбрано b.type(VARCHAR) нужное мне строковое поле.
Я тут почитал про LIKE оказывается он работает только с VAR или VARCHAR. Уже не знаю что и думать, а нужно сделать.
уже такой запрос составил: "SELECT b.type FROM dewars a LEFT JOIN equipment b ON b.type = '$drop_var' WHERE '$drop_var' LIKE 'a.volume%' "
Please help me!
SKirill
Дата: 20.12.2012 23:15:43
SKirill,

ай,все сам разобрался как сделать без атрибута LIKE