2017-04-21 7 views
-2

私はこのよう求めています:MySQLのFROM句でサブクエリを使用するには?

# chamber name 
1  A  New York 

これは、請求書テーブルがある:

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 

これは、室のテーブルです:だから

Use a subquery in the FROM clause to only retrieve invoices from chamber 'H' and the invoice amount of larger than 10000 and join the result with the voyages table using the number column. Project to only retrieve the boatname and the invoice amount of the join result. Order by invoice amount.

を、私はこれを作りました

# number invoice chamber 
1 8300 9189 A 

しかし、それは私に、このエラーを与え続け:Query failed: near ",": syntax error

+3

'、'を使って 'WHERE'節の文を区切ることはできません。 'AND'または' OR'を使う必要があります。 – Siyual

+1

また、暗黙の 'JOIN'構文の使用をやめてください。あなたは 'FROM'節に'、 'をつかないでください。この古代の「JOIN」スタイルは25年以上*使用されなくなりました*。 – Siyual

+0

@CSharper彼らはそうしないでしょう。しかし、あなたは私にではなくOPに尋ねるべきです。 – Siyual

答えて

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 
+0

ハハ、とてもシンプルな!私はそれを思い描いていた。ありがとう、私は今問題を得る。 – Siyah

関連する問題