Я пытаюсь написать заявление о соединении, но обнаруживаю, что запрос, который я запускаю, выводит ту же информацию для каждого найденного названия. Кажется, мне нужно объединить таблицы на нескольких полях, и я не уверен, что это возможно? Это немного сложно объяснить, но приведенный ниже код показывает, что я пытаюсь выполнить и что происходит на самом деле ... Надеюсь, кто-то сможет указать мне в правильном направлении?mysql - можно присоединиться к нескольким полям?
+----------------------------------------------------+
TABLE: NODE N
+----------------------------------------------------+
nid | vid | type | language | title | uid
22196 | 22196 | einfo | en | Contact 15 | 15
22040 | 22040 | fmp | en | John Doe | 15
22043 | 22043 | fmp | en | Jane Doe | 15
+----------------------------------------------------+
TABLE: CONTENT_FIELD_PN P
+----------------------------------------------------+
vid | nid | delta | field_name_nid
22196 | 22196 | 0 | 22040
22196 | 22196 | 1 | 22043
+----------------------------------------------------+
TABLE: CONTENT_FIELD_PP PP
+----------------------------------------------------+
vid | nid | delta | field_homephone_value
22196 | 22196 | 0 | 6505551212
22196 | 22196 | 1 | 6505551444
Я пытаюсь написать присоединиться заявление, которое будет производить:
+----------------------------------------------------+
TRYING TO OUTPUT
+----------------------------------------------------+
title | field_homephone_value | delta
John Doe | 6505551212 | 0
Jane Doe | 6505551444 | 1
+----------------------------------------------------+
Что сейчас ВЫВОД
+----------------------------------------------------+
title | field_homephone_value | delta
John Doe | 6505551212 | 0
Jane Doe | 6505551212 | 1
+----------------------------------------------------+
THE QUERY AS IT'S CURRENTLY WRITTEN
+----------------------------------------------------+
SELECT p.field_name_nid, n2.title, p.delta, pp.field_homephone_value
FROM node n
LEFT JOIN content_field_pn p ON n.nid = p.nid
LEFT JOIN node n2 ON p.field_name_nid = n2.nid
LEFT JOIN content_field_pp pp ON p.nid = pp.nid
WHERE n.nid = 22196
GROUP BY p.delta
Ах! Большое спасибо – WonderBugger
Человек, я пропустил его на 1 минуту! – KOGI
@KOGI: Думаю, ты избил меня на 1 минуту. Возможно, мой ответ принят, потому что он использует определения таблицы из вопроса. – Andomar