2013-06-12 26 views
2

這裏是銷售表。這裏有7條記錄。使用SELECT選擇10行並區分一列

+--------------+-------+------+-------+------------+---------+ 
| customername | price | vat | total | billnumber | salesid | 
+--------------+-------+------+-------+------------+---------+ 
| Raju   | 1300 | 165 | 1300 |   41 |  61 | 
| Raju   | 1300 | 165 | 1300 |   42 |  62 | 
| tubemania | 670 | 2266 | 17890 |   45 |  67 | 
| tubemania | 220 | 2266 | 17890 |   45 |  68 | 
| tubemania | 17000 | 2266 | 17890 |   45 |  69 | 
| tubemania | 670 | 2266 | 17890 |   46 |  70 | 
| tubemania | 220 | 2266 | 17890 |   46 |  71 | 
+--------------+-------+------+-------+------------+---------+ 

我想幹什麼?

1。我想選擇3條記錄與salesid不同billnumber順序(記錄應與所有列)

注:我的意思的結果應該是像下面的一個。 **

+--------------+-------+------+-------+------------+---------+ 
| customername | price | vat | total | billnumber | salesid | 
+--------------+-------+------+-------+------------+---------+ 
| Raju   | 1300 | 165 | 1300 |   41 |  61 | 
| Raju   | 1300 | 165 | 1300 |   42 |  62 | 
| tubemania | 670 | 2266 | 17890 |   45 |  67 | 
| tubemania | 220 | 2266 | 17890 |   45 |  68 | 
| tubemania | 17000 | 2266 | 17890 |   45 |  69 | 
+--------------+-------+------+-------+------------+---------+ 

我的意思是?

在這裏你可以看到有5條(但我說爲三個)但這些記錄只包含三個不同的單號。

請爲我提出一個MYSQL查詢這個問題。如果我不夠清楚,請發表評論。

+0

你試過了什麼?它看起來像功課...你可以在這裏閱讀:http://dev.mysql.com/doc/refman/5.0/es/select.html – jcho360

+0

@ jcho360 http://dev.mysql.com/doc/refman/ 5.0/en/select.html英文文檔。 – Renan

回答

0

您應該先選擇不同列的唯一值。在另一個查詢中,您可以使用第一個查詢中的值在您的where子句中進行過濾來提取所有行。快樂編碼。

+0

是的,你是對的,但我希望在那裏我們將是一種方法來執行這個事情在一個單一的查詢。 –

+0

我想你可以,如果你做一個內部連接。一方面,你有整個集合的所有列,另一方面你在同一個表上搜索,但只獲取具有不同值的列。我不知道這是否會起作用,我現在無法測試。但它仍然是一對夫婦的查詢,即使你可以用一個命令同時執行它們。 – Renan

+0

hmm.yeah它仍然會有兩個或更多的查詢。 –

0

這應該適合您的要求。

SELECT * FROM CUSTOMER 
WHERE BILLNUMBER IN(
    SELECT DISTINCT BILLNUMBER 
    FROM CUSTOMER LIMIT 0,3); 
+0

更改限制0,3到限制3 –

+0

它會有什麼區別? –

+0

我收到這個錯誤,我該怎麼辦? 錯誤1235(42000):此版本的MySQL尚不支持'LIMIT&IN/ALL/AN Y/SOME subquery' –

相關問題