0
我運行此查詢:MySQL的WHERE子句中SELECT MIN越來越忽略()子查詢
SELECT prop_numero, prop_id, prop_fase_id
FROM propiedades
WHERE prop_numero = (
SELECT MIN(prop_numero)
FROM propiedades
WHERE prop_numero > 11 AND prop_fase_id = 2
);
而得到這樣的:
| prop_numero | prop_id | prop_fase_id |
|-------------|---------|--------------|
| 111 | 166 | 1 |
|-------------|---------|--------------|
| 111 | 233 | 6 |
|-------------|---------|--------------|
| 111 | 657 | 2 |
|-------------|---------|--------------|
| 111 | 658 | 4 |
|-------------|---------|--------------|
我期待着眼前這個:
| prop_numero | prop_id | prop_fase_id |
|-------------|---------|--------------|
| 111 | 657 | 2 |
|-------------|---------|--------------|
並不總是,但第二個WHERE子句(prop_fase_id = 2)被忽略。正常情況下,子查詢的第一個WHERE子句找到多於一行,因此第二個子句應該過濾掉大部分行,只留下一個,但不會,它會被忽略。
爲什麼?我試圖用不同的子查詢結構化,但我不需要結果。
你是什麼意思忽略?解釋你試圖達到什麼目標,如果可能的話還有表格描述和一些樣本數據。 – Juan
謝謝胡安。我的意思是它不會過濾掉prop_fase_id列中沒有'2'的行。我會發布一些數據。 – blackliquid
我認爲你需要解釋更多關於你想要的結果。目前還不清楚爲什麼你使用min()作爲例子。子查詢將解析爲prop_numero,在本例中爲111.但主查詢將顯示所有記錄中prop_numero爲111的所有記錄。如果你想得到一個結果,主要查詢的條件應該在id而不是prop_numero上。 – Juan