将2个MySQL选择合并为一个查询

时间:2013-01-24 23:02:53

标签: mysql

我在为我的需求获得正确的查询方面遇到了一些问题

SELECT tbl_participants.name, 
       tbl_transactions.consumer_rfid, 
       tbl_transactions.trans_price 
FROM   tbl_participants, 
       tbl_transactions 
WHERE  tbl_participants.id = tbl_transactions.trader_id

我所拥有的是2个简单的表:一个存储参与者(交易者/消费者),另一个存储交易(形成交易者到消费者)。我试图带回以下信息:交易者的姓名,消费者的姓名和交易价格

tbl_participants有id(唯一),名字(参与者) tbl_transactions有trader_id(取自上表),消费者rfid(取自上表)

我的查询应该返回交易者的名字(基于id),消费者的名字(基于rfid)和交易价值

谢谢

2 个答案:

答案 0 :(得分:0)

阅读评论只是一个半疯狂的猜测:

SELECT tbl_participants.name AS consumer,
       tbl_transactions.trans_price AS price
FROM   tbl_participants,
       tbl_transactions
WHERE  tbl_participants.id = tbl_transactions.trader_id;

我无法用name | consumer name | price ...

来表达你的意思

编辑:在获得更多信息之后,我就提出了这个问题:

SELECT p1.name AS name,
       p2.name AS consumer_name,
       t.trans_price AS price
FROM   tbl_participants p1,
       tbl_participants p2,
       tbl_transactions t
WHERE  p1.id = t.trader_id
AND    p2.card_rfid = t.consumer_rfid;

答案 1 :(得分:-1)

试试这个:

   SELECT tbl_participants.name AS consumer, 
           tbl_transactions.consumer_rfid, 
           tbl_transactions.trans_price 
    FROM   tbl_participants, 
           tbl_transactions 
    WHERE  tbl_participants.id = tbl_transactions.trader_id 

我不明白你使用相同的两个表的问题。因此可以毫无问题地完成选择。

编辑如果您不希望consumer_rfid删除它。

    SELECT tbl_participants.name AS consumer,
    tbl_transactions.trans_price 
    FROM   tbl_participants,tbl_transactions
    WHERE  tbl_participants.id = tbl_transactions.trader_id