Чтобы уточнить jkns.co's comment:
Думай вашего запроса, как
(
SELECT
m.id_login as field1,
m.prenom as field2,
m.nom as field3,
m.affiche as field4,
m.id_admin as field5,
pmembre.publication as field6
FROM ...
)
UNION
(
SELECT
m.id_login as field1,
m.prenom as field2,
m.nom as field3,
m.affiche as field4,
m.id_admin as field5,
p.publication as field6
FROM ...
)
Союз создает единый набор результатов для двух запросов и тому набор результатов состоит из записей (всех), имеющих поля1, ..., field6. И вы можете работать с этим набором результатов почти так же, как на таблице (производная таблица, и вы можете «спросить» об EXPLAIN о последствиях производительности, если вы слишком сильно нажмете на это). Итак, вы могут, например. сделать что-то вроде
SELECT field1,field2,field3,field4,field5,field6
FROM
(
SELECT
m.id_login as field1,
m.prenom as field2,
m.nom as field3,
m.affiche as field4,
m.id_admin as field5,
pmembre.publication as field6
FROM ...
)
UNION
(
SELECT
m.id_login as field1,
m.prenom as field2,
m.nom as field3,
m.affiche as field4,
m.id_admin as field5,
p.publication as field6
FROM ...
)
ORDER BY field6 ASC
но
а) вы не должны обернуть союз в другом SELECT ... FROM <derived table>
, то «ярлык» (SELECT ...) UNION (SELECT ...) ORDER BY foo
будет делать.
b) вам не нужно явно указывать псевдонимы в соответствии с именами полей; MySQL будет просто использовать имена первого UNION.
Так,
(SELECT m.id_login, m.prenom, m.nom, m.affiche, m.id_admin, pmembre.publication
FROM amis AS a
...
) UNION (
SELECT m.id_login, m.prenom, m.nom, m.affiche, m.id_admin, p.publication
FROM membre AS m
...
)
ORDER BY publication ASC
должен сделать трюк.
Редактировать: Подождите ... эти названия полей do матч. Вы уверены, что это должны быть две отдельные таблицы, а не одна таблица с полем флага?
edit2: о получении какого-либо сообщения об ошибке: поскольку ваш код не включает обработку ошибок «на месте», вы можете использовать switch your pdo instance to PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION
, например. при создании экземпляра:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly', array(
PDO::ATTR_EMULATE_PREPARES=>false,
PDO::MYSQL_ATTR_DIRECT_QUERY=>false,
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION
));
Плюс более конкретный вопрос о том, что именно вы пробовали и какое сообщение об ошибке вы получили или неожиданное поведение, с которым вы столкнулись! – Shadow
У меня нет сообщений об ошибках, сообщения исчезают Когда я пытаюсь сделать заказ по родам. – Serg77
UNION будет просто создавать одно поле публикации, так что вы можете просто сделать ЗАКАЗАТЬ публикацией ASC? –