我在我的網站上使用Oscommeerce與舊的MySql版本和PHP版本4。獲取order_id,其中order_id有兩個時間x值
我的表結構:
| orders_status_history_id | orders_id | orders_status_id |
| 1 | 22 | 3 |
| 2 | 23 | 2 |
| 3 | 24 | 5 |
| 4 | 75 | 5 |
| 5 | 25 | 5 |
| 6 | 30 | 1 |
| 7 | 26 | 2 |
| 8 | 75 | 54 |
| 10 | 22 | 5 |
| 15 | 48 | 6 |
| 16 | 52 | 8 |
| 17 | 32 | 9 |
| 18 | 75 | 54 |
| 19 | 24 | 5 |
| 22 | 20 | 8 |
| 23 | 75 | 54 |
| .. | .. | .. |
| .. | .. | .. |
我的表有整體超過200萬行。
orders_status_history_id
列是auto increment
。
所以我的問題是:
我如何獲得orders_id
其中orders_status_id
有兩個時間54 id
?
例如: 如果orders_id
75有orders_status_id
= 54那麼它應該顯示我的orders_id
75,如果沒有,則跳過它。
因此,我希望輸出像這樣:
| orders_status_id | orders_id |
| 54 | 75 |
我累了以下幾個方面:
$sql = "SELECT
orders_status_history_id, orders_id, orders_status_id
FROM
orders_status_history
Where
(orders_status_history_id > ".$dal." AND orders_status_history_id < ".$al.")
AND
orders_id IN(
Select Distinct
orders_id
From
orders_status_history
Where
(orders_status_history_id > ".$dal." AND orders_status_history_id < ".$al.")
HAVING
count(orders_status_id=54)>2
)";
沒有工作
SELECT
orders_status_history_id, orders_id, orders_status_id
FROM
orders_status_history
WHERE
(orders_status_history_id > 0 AND orders_status_history_id < 500)
AND
orders_id IN (
Select
orders_id
FROM
orders_status_history
WHERE
(orders_status_history_id > 0 AND orders_status_history_id < 1000)
AND
count(orders_status_id=54) >2
)
我找不到查詢來獲取所需結果。
我究竟做錯了什麼?
在此先感謝。
小組在哪裏? – jarlh
@gordonLinoff它給了我這個錯誤:'查詢執行被中斷'我有1900000 +行離我的表 –
@jarlh。 。 。它現在在那裏。 –