2016-11-29 5 views
1

私が得たいのは、「最初に5つの別個の顧客の注文ID値を取得する」ことです。私はクエリを5に制限すると、最初の4つの顧客の注文ID値が期待通りに返されます(ホーンの周りに2つの異なる注文IDがあります)。最初の5つの別個の顧客の注文ID値を取得する方法はありますか?最初のn個の列の値を左結合から取得する方法は?

SELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
LEFT JOIN Orders 
ON Customers.CustomerID=Orders.CustomerID 
ORDER BY Customers.CustomerName; 


CustomerName      OrderID 
Alfreds Futterkiste     10001 
Ana Trujillo Emparedados y helados 10308 
Antonio Moreno Taquería    10365 
Around the Horn      10355 
Around the Horn      10383 
B's Beverages      10289 
Antonio baa       10444 
....        .... 

編集:私は取得したい何は最初の5個別の顧客です。

Alfreds Futterkiste     10001 (first customer) 
Ana Trujillo Emparedados y helados 10308 (second customer) 
Antonio Moreno Taquería    10365 (third customer) 
Around the Horn      10355 (forth customer) 
Around the Horn      10383 (forth customer) 
B's Beverages      10289 (fifth customer) 

ここではare私が取り組んでいるテーブル。これを試してみてください

+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-veryを参照してください。 -simple-sql-query – Strawberry

+0

@Strawberry不明な点はありますか? – hellzone

+0

明らかに。それ以外の場合は、すでに回答を受け入れていたでしょう – Strawberry

答えて

1

"Customers.OrderdIdがNULLでない場合" と5で

+0

@hellzoneそれはあなたのために働いていますか? –

+0

私はエラーが発生しています:ステートメントを準備できませんでした( "1"の近くに:構文エラー) – hellzone

+0

ありがとうございました。今働いている。 – hellzone

-1

リミットクエリは、 "5 TOP SELECT" や余分な句を追加します。

  SELECT DISTINCT Orders.OrderID, CC.CustomerName 

      FROM Customers CC 
      LEFT JOIN Orders 
      ON CC.CustomerID=Orders.CustomerID 
      inner join 

      (
      SELECT DISTINCT Customers.CustomerName 
      FROM Customers 
      LEFT JOIN Orders 
      ON Customers.CustomerID=Orders.CustomerID 
      ORDER BY Customers.CustomerName 
      LIMIT 5 
      ) C 
      ON C.CustomerName=CC.CustomerName 

      ORDER BY CC.CustomerName 
+0

それはnullについてではありません。私はあなたのために私の質問を更新しました:) – hellzone

関連する問題