从一个表中选择一列,从另一个表中选择其他列

时间:2014-04-23 13:28:18

标签: mysql sql

我有桌子:

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

我想获取特定transaction_date的user_id,transaction_number,transaction_date。第一个表可能包含不同日期的重复user_id,并且可能不包含特定日期的所有user_id。如果user_id在事务表中没有任何事务条目,则结果必须包含所有user_id,并且其transaction_number和事务日期为null。

举个例子:

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

它显示在12/04/2013中只有3个用户且只有user_id 1有交易。

3 个答案:

答案 0 :(得分:1)

从Transaction右外连接中选择*来自Transaction.user_id = Users.user_id和Transaction.transaction_date =' 2013年4月12日12:00 AM'

答案 1 :(得分:0)

如果transaction_number为null,则可以将其替换为0,具体取决于您使用的数据库类型。

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

答案 2 :(得分: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