join из 3х таблиц. рабочий запрос даже если в третьей записей нет

дедушка АУ

Новичок
join из 3х таблиц. рабочий запрос даже если в третьей записей нет

Всем привет.

Есть три таблицы:
в первой обязательные данные
вторая связывает с третьей

вопрос вот в чем:
если делаешь выборку и в третьей таблице записей для нужно id нет то выборка возвращает пустое значение
а мне хотелось бы чтобы даже если в третьей записей нет - выводились бы обязательные данные из первой

сейчас у меня запрос вида
SELECT t1*, t2.*, t3.*
FROM data as t1, add_fields as t2, add_fields_values as t3
WHERE t1.DataID='456' AND t2.ObjectPID=t1.ObjectPID AND t3.FieldPID=t2.FieldID AND t3.DataID=t1.DataID
 

дедушка АУ

Новичок
угу, разобрался
"If there is no matching row for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table."
спасиб

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

как сделать чтобы эти поля добавлялись как бы столбцами что-ли... а не дублировали запись

GROUP BY?
 

дедушка АУ

Новичок
щас вот UNION попробую
мне кажется это то что нужно

-~{}~ 16.03.06 17:14:

voituk
DISTINCT определяет что делать с дубликатами столбцов

а мне надо
вместо
PHP:
+----+-----------------------+---------- +--------------------+
|  1  | название             |  дата     | значение доп поля1 |
+----+-----------------------+-----------+--------------------+
|  1  | название             |  дата     | значение доп поля2 |
+----+-----------------------+-----------+--------------------+
получить такое
PHP:
--id----name--------------------date--------- допполе1 ----------  доп.поле2
+----+-----------------------+---------- +--------------------+--------------------+
|  1  | название             |  дата     | значение доп поля1 | значение доп поля2 |
+----+-----------------------+-----------+--------------------+--------------------+
 

voituk

прозревший
Судя по всему в таком виде результат ты не получишь.
 

Wicked

Новичок
в виде:
Код:
+----+-----------------------+---------- +---------------------------------------+ 
|  1  | название             |  дата     | значение доп поля1,значение доп поля2 | 
+----+-----------------------+-----------+---------------------------------------+
GROUP_CONCAT()
 

дедушка АУ

Новичок
а вложенные запросы?
можно ведь получить что-то типа

while (...){
row['name']
row['add_fields']['значение доп поля1']
row['add_fields']['значение доп поля2']
}
 

Wicked

Новичок
Нельзя.

Попробуй представить, как бы ты записал это в табличном виде.
 
Сверху