У меня есть две таблицы: одна со всеми пользовательскими данными и одна с некоторыми заказами. заказ всегда для одного пользователя, но сделанный от другого пользователя (пользователь не может заказать для себя)MYSQL: объединение нескольких таблиц - замена нескольких идентификаторов пользователя с именами пользователей
в таблице заказов редактор и пользователь хранятся только с их идентификатором, соответствующим таблице пользователя.
здесь сокращенные таблицы:
`orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(10) NOT NULL,
`editor_id` int(10) NOT NULL,
`reason` char(200) COLLATE utf8_unicode_ci NOT NULL,
`amount` decimal(10,2) NOT NULL
)
`users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` char(250) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`password` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`email` varchar(250) COLLATE utf8_unicode_ci NOT NULL DEFAULT ''
)
я хочу запросить один из заказов, и получить user_id заменены user_name и editor_id также заменены с правильным именем из таблицы пользователей. это то, что нормальные заказы результат запроса выглядит следующим образом:
[0] => Array
(
[id] => 714
[user_id] => 97
[editor_id] => 45
[reason] => Ausgaben Regale 28.09.13
[amount] => 150.00
)
и это то, что я хочу:
[0] => Array
(
[id] => 714
[user_id] => 97
[editor_id] => 45
[user_name] => the user name
[editor_name] => the editor name
[reason] => Ausgaben Regale 28.09.13
[amount] => 150.00
)
Я попытался так много различных соединений, но все без успеха, очень хотелось бы получите подсказку, указывающую на меня в правильном направлении.
Вы можете поместить в один из запросов с помощью объединений, которые вы пробовали? Вам нужно дважды присоединяться к «заказам» к «пользователям» - один раз для идентификатора пользователя и один раз для идентификатора редактора – InSane