join опредененных полей?

sunyang

Новичок
Как объеденить только определенные поля двух таблиц.
Делаю запрос:

PHP:
$rz = $db->prepare("SELECT * FROM element LEFT JOIN property 
		ON element.IBLOCK_ID=property.IBLOCK_ID WHERE element.ID=1");
	$rz->execute();
	$arResult = $rz->fetchAll(PDO::FETCH_ASSOC);
такой запрос срабатывает, но мне нужны из первой таблицы только поля ID и NAME, и если я пишу запрос вот так:

SELECT ID, NAME FROM element LEFT JOIN property
ON element.IBLOCK_ID=property.IBLOCK_ID WHERE element.ID=1
то не работает.

Подскажите пожалуйста.
 

Фанат

oncle terrible
Команда форума
не работает трактор в поле.
а программа пишет ошибки.
 

Фанат

oncle terrible
Команда форума
к слову, "join опредененных полей" - бессмыслица.
джойн бывает только у таблиц. из получившейся результирующей таблицы можно выбрать любые поля.
 

sunyang

Новичок
Т.е. вы хотите сказать, что объеденять можно только все поля обоих таблиц?

Почему тогда вот здесь выдет результат:
PHP:
SELECT ID, NAME, SITE_ID, IBLOCK_ID FROM b_iblock_site LEFT JOIN b_iblock ON b_iblock.ID=b_iblock_site.IBLOCK_ID
таблица
b_iblock_site:

SITE_ID | IBLOCK_ID
S1 | 15
S2 | 13

таблица b_iblock:

ID | CODE | NAME |
15 | blabla | Название |
результат: Array ( [ID] => 15 [NAME] => Название [SITE_ID] => s1 [IBLOCK_ID] => 15 )
 

Фанат

oncle terrible
Команда форума
я написал ровно то, что хотел сказать.
можешь перечитать
 

sunyang

Новичок
Ааа, т.е. для обоих таблиц заюзать алиасы вроде этого?:

PHP:
$rz = $db->prepare("SELECT t1.ID, t2.NAME FROM element AS t1 LEFT JOIN property AS t2 
 ON t1.IBLOCK_ID=t2.IBLOCK_ID WHERE t1.ID=1");
 

Фанат

oncle terrible
Команда форума
Ты ошибки запросов принципиально не выводишь?
предпочитаешь по три дня вслепую барахтаться?
 
Сверху