我有3個包含相似行數據的表。 我需要從所有三個表用以下條件的選擇100行:如何從3個不同的表中共同選擇100行?
不超過25行可以從表A中選擇 - >(命名爲count_a)
不超過40行可以從表B中選擇 - >(count_b)
行的任何數目的可從表C(count_c)進行選擇,但數量應該 count_c = 100 - (+ count_a count_b)
這裏是我的嘗試:
SELECT * FROM
(
SELECT * FROM TABLE_A WHERE ROWNUM <= 25
UNION ALL
SELECT * FROM TABLE_B WHERE ROWNUM <= 40
UNION ALL
SELECT * FROM TABLE_C
) WHERE ROWNUM <=100
但查詢速度太慢,並不總是給我100行。
你的查詢看起來很好 - 在哪些情況下它不給100行? –
正如你所說的你的條件,他們很滿意,即使你只返回表C中的100行。所以,你去:SELECT * FROM TABLE_C WHERE ROWNUM <= 100 –