2013-06-30 70 views
-4

基本上我試圖連接2個表然後返回結果,下面是我使用的代碼。 問題是,可以說我只想從'蒂娜'到'本'搶行。這是不可能的,因爲它沒有ID,如果我以某種方式包括它們的ID,它將是隨機數字,而不是命令。無論如何要處理這類問題?在mysql結果上添加一個id

SELECT names.name, COUNT(item) AS items 
FROM names 
LEFT JOIN names_items 
    ON names.name = names_items.name 
GROUP BY names.name 
ORDER BY COUNT(item) DESC 

結果會是這樣的。

| Names | Items | 
    Bob  60 
    Tina  32 
    Arthur 43 
    Ben  21 
    Ronie  54 
+0

在這種情況下,您可以使用where子句。 –

+0

你能更具體嗎? – user2310422

+0

如果你知道你可以使用的行數的限制 –

回答

2

同時創造所有這些表使列名ID和ID的屬性將

-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 

那麼你可以使用這個ID選擇u想要的東西,你可以創建一個列

2

您可能會嘗試在('Tina','Ben','Arthur')中添加「WHERE names.name?」

這是基於您想要Tina,Ben和Arthur的信息

或限制(2,X)(其中x是蒂娜和Ben之間的距離)

這隻能如果蒂娜始終是第二個記錄,和本總是從蒂娜相同的距離和Tina後總是。

一個更復雜的方式來做到這將是:

  1. 設置你的表中OP是一個臨時表。
  2. 選擇計數,其中name =「蒂娜」作爲VAR1和選擇項目,其中name =「本」作爲VAR2
  3. 做到哪裏VAR1> VAR2的情況下 - 選擇*,其中數< VAR1和計數> 2,否則選擇*,其中計數> VAR1和計數< VAR2

我不認爲這是一個「好」的解決了這個問題,如果我們知道你爲什麼會想奔和Tina之間的每一個人,它會更容易回答.. Ben和Tina有什麼特別的?