2014-04-23 34 views
-3

選擇從一個表和其他列一列我有表:從另一個表

1. Users : user_id, user_name  
2. Transaction : user_id, transaction_number, transaction_date 

我想要得到的USER_ID,TRANSACTION_NUMBER,TRANSACTION_DATE特定TRANSACTION_DATE。第一個表可能包含針對不同日期的重複user_id,並且可能不包含特定日期的所有user_id。如果user_id在事務表中沒有任何事務條目,那麼結果必須包含所有user_id,並且其transaction_number和事務日期爲空。

有關示例:

user_id    transaction_number   transaction_date 
    1     10       12/04/2013 
    2     0       12/04/2013 
    3     0       12/04/2013 

它顯示僅存在3個用戶和只USER_ID 1具有在2013年12月4日的交易。

+1

你用[Mysql的加入(HTTPS:/ /dev.mysql.com/doc/refman/4.1/en/join.html)?你試過的查詢在哪裏? – Manwal

+0

我找到了解決方案。 – geethu

+0

我找到了解決方案: select * from Transaction right outer join Users on Transaction.user_id = Users.user_id and Transaction.transaction_date ='Apr 12 2013 12:00 AM' – geethu

回答

1

SELECT * FROM交易右外連接的用戶= Transaction.user_id和Users.user_id = Transaction.transaction_date '2013年4月12日12:00 AM'

0

根據您使用的數據庫的類型,您可以用0替換transaction_number,如果它爲null。

Select u.User_id, transactions.transaction_number, '12/04/2013' as transaction_date 
from Users u 
left join (Select user_id, Sum(transaction_number) 
      from Transaction 
      where transaction_date = '12/04/2013' 
      Group By user_id 
      ) transactions 
      on transactions.User_id = u.user_id 
0

列出所有有交易的用戶(如果有的話)。使用左連接。

select users.user_id,users.user_name,transaction.transaction_number, transaction.date from users left join transaction on users.user_id = transaction.user_id 
+0

結果包含事務表中的所有行 – geethu