2012-04-27 52 views
1

我有包含星期數和id的如果列比「詮釋」更大,出現不止一次

| id | week | 
| 1 | 1 | 
| 2 | 2 | 
| 3 | 6 | 
| 4 | 8 | 

我需要做的是根據一週的價值,檢索表。但是如果行大於某個數字,我還需要多次返回該行。

例如(僞),

if week > 2 
and week > 6 

| id | week | 
| 2 | 2 | 
| 3 | 6 | 
| 3 | 6 | 
| 4 | 8 | 
| 4 | 8 | 

ID 3 & ID 4出現兩次,因爲它們比都在2和6 ID,因爲它是唯一的大於2 2將僅出現一次以上。

不幸的是,循環查詢是排序的出了問題,因爲這個查詢將返回2k +行。

任何幫助將不勝感激,即使解決方案是基於PHP的。

+0

爲什麼它會返回兩次(ID 3,4)?即使使用OR,它也只會返回一次。我無法回答你的問題。通過查詢需要什麼最終結果? – Milee 2012-04-27 10:20:47

+0

最終結果是根據大於,大於,但同時顯示其是否存在於另一個表中來多次顯示該星期。我目前在@Sirko所說的UNION中嘗試它,但由於EXISTS和NOT EXISTS在查詢中進一步存在,我不確定這是否有效。 – BennyC 2012-04-27 10:23:18

回答

5

enter image description here將查詢拆分爲多個查詢,然後使用UNION合併結果。

下面應該給你你想要的結果。

(SELECT * FROM yourTable WHERE week > 2) 
UNION ALL 
(SELECT * FROM yourTable WHERE week > 6) 

編輯包括在由百合的提示 - THX。

+0

由於它的性質是正確的,所以你的答案+1了,雖然我不太確定它是否適用於我的情況。目前正在嘗試它,我會讓你知道結果。 – BennyC 2012-04-27 10:24:04

+2

@BennyC它不工作...並嘗試**工會所有**而不是工會。它仍然只返回id = 4兩次。 :) – Milee 2012-04-27 10:28:42

+0

**工程出色**,只是進一步限制了進一步的參數。感謝您的幫助。 – BennyC 2012-04-27 10:36:37