如何在MySQL的FROM子句中使用子查询?

时间:2017-04-21 21:04:30

标签: mysql sql

我被问到这个问题:

  

使用FROM子句中的子查询仅从中检索发票   室' H'和发票金额大于10000并加入   结果使用数字列的航次表。仅限项目   检索联合结果的船名和发票金额。订购   按发票金额。

所以,我做了这个:

SELECT chamber =
        (
            SELECT      chamber 
            FROM        invoices 
            INNER JOIN  voyages ON  chambers.chamber  ='H' 
                                AND chambers.invoice > 10000 
                                AND invoice.number=voyages.number
        ), 
        boatname, 
        invoice 
FROM    chambers, 
        voyages, 
        invoices 
WHERE   chambers.chamber = invoices.chamber, 
        invoices.number = voyages.number

这是商会表:

#   chamber   name
1     A      New York

这是发票表:

#   number  invoice chamber
1   8300    9189    A

然而它一直给我这个错误:Query failed: near ",": syntax error

1 个答案:

答案 0 :(得分:1)

您的指示说将子查询放在FROM子句中,并将其作为腔室列的赋值。你想要做的是:

SELECT b.boatname
        ,a.invoice 
FROM (SELECT number, invoice
        FROM invoices
        WHERE chamber = 'H'
            AND invoice > 10000) a
INNER JOIN voyages b ON a.number = b.number
ORDER BY a.invoice DESC