странное соединение в php - PullRequest
       3

странное соединение в php

0 голосов
/ 24 октября 2011

Хорошо, я не новичок в PHP и не новичок в MySQL или в присоединениях ... Но что я должен сделать, я не совсем уверен, что возможно без запуска foreach ввести данные в мой текущий массив ...

Итак, у меня есть соединение, которое выглядит примерно так:

SELECT `priorities`.`pri_name`, `agent_status`.`sta_title`, `specializations`.`spec_title`, `agents`.*
FROM (`agents`)
JOIN `priorities` ON `priorities`.`id` = `agents`.`priority`
JOIN `agent_status` ON `agent_status`.`s_id` = `agents`.`user_status`
JOIN `Specializations` ON `specializations`.`id` = `agents`.`Specialization`
WHERE `agents`.`id` =  '4';

Теперь мне нужно добавить еще одно объединение, которое при нормальных обстоятельствах не было бы проблемой. Но мне нужно выяснить, как в этом отдельном запросе я могу создать объединение для той же таблицы, но для другой записи.

Так что в основном мне нужно будет выбрать f_name, l_name 2-й записи, где id совпадает с pid исходной выбранной записи ... так что-то вроде добавления в мой выбор:

agents.f_name AS pf_name, agents.l_name AS pl_name

тогда что-то вроде ...

JOIN('agents' ON agents.id = agents.p_id

или что-то в этом роде ...

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Для этого вы можете использовать самостоятельное соединение с псевдонимами. В качестве примера рассмотрим следующий код:

SELECT
   a.*, b.*
FROM
   table AS a
   JOIN table as b
WHERE
   a.id = b.pid

В этом примере кода вы сможете применить его к существующему запросу.

В существующем запросе вы должны изменить префикс agents для ссылок на поля таблицы агентов с псевдонимом, который вы используете для таблицы, поэтому agents. priority должно стать alias.priority.

1 голос
/ 24 октября 2011

Вы можете использовать псевдонимы таблиц и присоединяться к одной и той же таблице столько раз, сколько вам нужно (разумеется, не более максимально допустимого числа соединений):

FROM agents a1
JOIN agents a2 ON ([condition])
JOIN agents a3 ON ([condition])
0 голосов
/ 24 октября 2011

Ключ к псевдониму второй ссылки на таблицу agents с другим именем. В моем примере я буду использовать a2 в качестве псевдонима.

SELECT ..., a2.f_name AS pf_name, a2.l_name AS pl_name
...
JOIN agents a2
    ON agents.p_id = a2.id
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...