2011-02-02 2 views
1

PHP todo 목록을 만들고 MySQL DB에 'admin_todo'테이블이 있으며 각각의 할 일 목록에는 사용자의 ID가 들어있는 'created_by'및 'completed_by'열이 있습니다. 별도의 테이블 'admin_users'에 있습니다.하나의 표로 두 개의 열을 결합하십시오 MySQL

'created_by'및 'completed_by'열을 'admin_users'테이블의 'username'열과 연결할 수있는 쿼리가 필요합니다. 그러면 해당 항목을 만든 사용자의 사용자 이름을 반향시킬 수 있습니다. todo와 todo를 완료 한 사람. 할 수있는 일은 쉬울 것 같지만 제대로 처리 할 수있는 쿼리를 찾을 수 없습니다.

나는 노동 조합을 사용하여 시도했다

:

SELECT admin_todo.*, admin_users.username AS creator 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.created_by = admin_users.id 

UNION ALL 

SELECT admin_todo.*, admin_users.username AS completer 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.completed_by = admin_users.id 

그러나 아아, 그것은 '창조자'열에서 두 번 할 일 제작자의 사용자 이름과 처음으로 모든 할 일 항목을 반환합니다. 두 번째로 할일 작성자의 사용자 이름이 있지만 '작성자'열 아래의 사용자 이름입니다.

답변

8

이을 시도해보십시오!

SELECT admin_todo.*, au.username AS creator, au2.username AS completer 
FROM admin_todo 
LEFT JOIN admin_users AS au 
    ON admin_todo.created_by = au.id 
LEFT JOIN admin_users AS au2 
    ON admin_todo.completed_by = au2.id 
+0

이 ** 완벽하게 작동 ** 당신이 'something_else'AS 테이블을 선택할 수 몰랐다, 나는 단지 열에 대해 생각했다. 감사! –

+0

네 인생이 훨씬 쉬워. – Darren

관련 문제