Выбор из 2-х таблиц данных

Databuild

Новичок
Выбор из 2-х таблиц данных

По порядку:
1. Есть две таблицы

CREATE TABLE shop_fields (
id int(11) NOT NULL auto_increment,
name text,
`type` enum('text','textarea') NOT NULL default 'text',
textarea_cols smallint(3) unsigned NOT NULL default '0',
textarea_rows smallint(3) unsigned NOT NULL default '0',
text_size smallint(3) unsigned NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
pos smallint(3) unsigned NOT NULL default '1',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


INSERT INTO shop_fields VALUES (1, 'Габариты', 'textarea', 50, 10, 50, 1, 2);
INSERT INTO shop_fields VALUES (2, 'Мощность', 'text', 0, 0, 50, 1, 2);
INSERT INTO shop_fields VALUES (3, 'Доп. описание', 'textarea', 50, 10, 0, 1, 1);

CREATE TABLE shop_fields_value (
idfield int(11) NOT NULL default '0',
id_tovara int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
val text,
PRIMARY KEY (idfield,id_tovara)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


INSERT INTO shop_fields_value VALUES (1, 263, 1, '200x200x50');
INSERT INTO shop_fields_value VALUES (2, 263, 1, '300');
INSERT INTO shop_fields_value VALUES (1, 250, 1, 'Cool');

___________________________________________

Т.е. две таблицы одна дополнительные поля, другая их значения:

Далее мой запрос:
$sql2 = $db->Query("SELECT
a.*,
b.*
FROM
" . PREFIX . "_shop_fields_value as a,
" . PREFIX . "_shop_fields as b
WHERE

a.id_tovara = '$_REQUEST[id]' AND
b.active = 1 AND
b.id = a.idtovara
");
_____________________________

Суть проблемы:
Запрос (id=263) вытащит только поля (Габариты и Мощность )и их значения
(1, 263, 1, '200x200x50') и (2, 263, 1, '300') и это понятно,
но мне надо чтобы в массив еще и попали остальные поля из таблицы fields, т.е. Доп. описание с пустыми значениями!

Как это сделать красиво, ума не приложу.
 

chira

Новичок
Код:
SELECT *
FROM shop_fields sf 
  LEFT JOIN shop_fields_value sv ON  sf.id = sv.idtovara AND  sv.id_tovara = '263' 
WHERE sf.active=1
 

Voron

Новичок
Тот ж вопрос мне надо выбрать из двух таблиц.
Делаю такой запрос но не работет (Вообще я его правильно делаю?):
PHP:
$sql = mysql_query("select proect.name_org,
       proect.cat,
       proect.who,
       proect.fio,
proect.dolznost,
proect.tel,
proect.facs,
proect.mail,
proect.www,
proect.adres,hod.id_org AS org2,hod.fio AS fio2,hod.dolznost AS dolznost2,
hod.tel AS tel2,hod.facs AS facs2,hod.mail AS mail2,hod.www AS www2,
hod.adres AS adres2 FROM proect,hod");
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
 
Сверху