2013-01-15 85 views
1

我正在尝试执行联盟的左外联接。查询运行,但不显示联合的列。我错过了什么?这是我的查询:MySQL左加入到联盟

SELECT p.profile_record_id, 
     p.first_name, 
     p.last_name, 
     l.entry_id, 
     l.when_logged, 
     l.amount, 
     l.reason_text 
FROM member_profile p 
     LEFT OUTER JOIN authorize_net_log l 
        ON (p.profile_record_id = l.profile_record_id) 
     LEFT OUTER JOIN (SELECT assigned_entry_number, 
           payment_status AS e_status, 
           'vehicle'  AS type, 
           profile_record_id 
         FROM event_entry 
         UNION 
         SELECT '', 
           co_payment_status, 
           'driver', 
           profile_record_id 
         FROM event_co_driver) u 
        ON (p.profile_record_id = u.profile_record_id) 
WHERE l.response_code = '1' 
     AND l.reason_code = '1' 
+1

您确定要使用'UNION'而不是'UNION ALL'? – Kermit

+0

它不应该有任何区别,因为在这种情况下不会有重复,但UNION ALL可能会更有效。 – George

回答

2

你或许应该将它们添加到列表SELECT

SELECT u.*, p.profile_record_id, p.first_name, p.last_name, l.entry_id, l.when_logged, l.amount, l.reason_text 
FROM ... 
+0

谢谢,这就是我所缺少的。我想我期待列自动添加。 – George