Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Разобраться с Inner Join из множества таблиц / 9 сообщений из 9, страница 1 из 1
16.11.2014, 02:14:14
    #38807331
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
Помогите разобраться с Inner Join из множества таблиц:

[SRC sql]
SELECT
identities_contact.name AS `ФИО`,
identities_contacttype.name AS `Тип`,
identities_contactfield.label AS `Параметр`,
identities_contactvalue.value AS `Значение`
FROM identities_contact
INNER JOIN identities_contacttype ON identities_contacttype.object_ptr_id = identities_contact.contact_type_id
INNER JOIN identities_contacttype_fields ON identities_contacttype.object_ptr_id = identities_contacttype_fields.contacttype_id
INNER JOIN identities_contactfield ON identities_contactfield.object_ptr_id = identities_contacttype_fields.contactfield_id
INNER JOIN identities_contactvalue ON identities_contact.object_ptr_id = identities_contactvalue.id
WHERE identities_contact.related_user_id IS NULL
[/SRC]

Хочу получить таблицу:
ФИО | ТИП | ПАРАМЕТР | ЗНАЧЕНИЕ
ИВАНОВ | КЛИЕНТ | АДРЕС | ул.Мира 1
ИВАНОВ | КЛИЕНТ | ТЕЛЕФОН | 123456789

Структуру таблиц прикладываю.

Данные:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
identities_contact:
24	21	Company		1
78	23	Иванов		Null

identities_contactvalue:
11	16	78	ул.Мира 1 
18	18	78	123456789

identities_contactfield:
16	phone	АДРЕС	phone	0	
18	phone	ТЕЛЕФОН	phone	0

identities_contacttype:	
23	Person	person	персональный

identities_contacttype_fields: (таблица для связывания групп полей и типов контактов)
9	22	19
10	23	16
11	23	17
12	23	18
13	23	19
14	23	20	
...
Рейтинг: 0 / 0
16.11.2014, 02:20:29
    #38807332
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
Забыл прикрепить саму структуру таблиц:
...
Рейтинг: 0 / 0
16.11.2014, 02:44:04
    #38807333
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
А проблема то в чем? Что у вас не получается?
...
Рейтинг: 0 / 0
16.11.2014, 02:50:38
    #38807334
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
SharuPoNemnoguА проблема то в чем? Что у вас не получается?

Выводит пустой результат вместо:
ФИО | ТИП | ПАРАМЕТР | ЗНАЧЕНИЕ
ИВАНОВ | КЛИЕНТ | АДРЕС | ул.Мира 1
ИВАНОВ | КЛИЕНТ | ТЕЛЕФОН | 123456789
...
Рейтинг: 0 / 0
16.11.2014, 03:04:26
    #38807337
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
Немного по отлаживая наткнулся на проблему, она где-то в последнем join.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
	identities_contact.`name` AS `ФИО`,
	identities_contacttype.`name` AS `Тип`,
	identities_contactfield.label AS `Параметр`
	# identities_contactvalue.`value` AS `Значение`
FROM identities_contact
	INNER JOIN identities_contacttype ON identities_contacttype.object_ptr_id = identities_contact.contact_type_id
	INNER JOIN identities_contacttype_fields ON identities_contacttype.object_ptr_id = identities_contacttype_fields.contacttype_id
	INNER JOIN identities_contactfield ON identities_contactfield.object_ptr_id = identities_contacttype_fields.contactfield_id
	# INNER JOIN identities_contactvalue ON identities_contact.object_ptr_id = identities_contactvalue.id
WHERE identities_contact.related_user_id IS NULL



Иванов Person АДРЕС
Иванов Person ТЕЛЕФОН
...
Рейтинг: 0 / 0
16.11.2014, 03:42:11
    #38807341
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
Может так?
Код: sql
1.
INNER JOIN identities_contactvalue ON identities_contact.object_ptr_id = identities_contactvalue.contact_id
...
Рейтинг: 0 / 0
16.11.2014, 11:52:21
    #38807399
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
SharuPoNemnoguМожет так?
Код: sql
1.
INNER JOIN identities_contactvalue ON identities_contact.object_ptr_id = identities_contactvalue.contact_id



:) нужно больше спать:)
нечто похожее, но оно все равно работает с ошибкой!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Иванов Иван Иванович	Person	Address	ул. Мира
Иванов Иван Иванович	Person	Address	
Иванов Иван Иванович	Person	Address	123456789
Иванов Иван Иванович	Person	Address	
Иванов Иван Иванович	Person	Address	
Иванов Иван Иванович	Person	Phone	ул. Мира
Иванов Иван Иванович	Person	Phone	
Иванов Иван Иванович	Person	Phone	123456789
Иванов Иван Иванович	Person	Phone	
Иванов Иван Иванович	Person	Phone	
...
Рейтинг: 0 / 0
16.11.2014, 13:00:00
    #38807430
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
group by..
...
Рейтинг: 0 / 0
16.11.2014, 13:37:28
    #38807448
rebuy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с Inner Join из множества таблиц
SharuPoNemnogugroup by..

Нет не работает!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Разобраться с Inner Join из множества таблиц / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]