모든 사용자 데이터가있는 테이블과 일부 주문이있는 테이블이 있습니다. 주문은 항상 한 사용자를위한 것이지만 다른 사용자가 주문합니다 (사용자는 자신을 위해 주문할 수 없음).
주문 테이블에서 편집기와 사용자는 사용자 테이블에 해당하는 ID로만 저장됩니다.
여기에 단축 된 테이블이 있습니다.
`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도 users 테이블의 올바른 이름으로 바꾸고 싶습니다. 다음은 일반적인 주문 쿼리 결과입니다.
[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
)
많은 다른 조인을 시도했지만 성공하지 못한 경우 올바른 방향을 가리키는 힌트를 얻고 싶습니다.
이?
SELECT o.id, o.user_id, o.editor_id, u1.name as user_name, u2.name as editor_name,
o.reason, o.amount
FROM orders o
INNER JOIN users u1 ON o.user_id = u1.id
INNER JOIN users u2 ON o.editor_id = u2.id
WHERE o.id = "requested order id"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다