0

table1、table2、および table3 (構造が同一であると仮定) が与えられた場合、table1、table2、および table3 の最初の 1/3 レコードを選択することは可能ですか? 次に、2 番目の 1/3 は?じゃあ最後の1/3?

4

2 に答える 2

0

最初の 1/3 レコード:

SELECT *
FROM
(
    SELECT *
    FROM
    (
       SELECT * FROM Table1 
       UNION ALL 
       SELECT * FROM Table2
       UNION ALL
       SELECT * FROM Table3 
       UNION ALL
    ) sub
    ORDER BY ID DESC
    LIMIT 3
) t 
ORDER BY Id ASC
LIMIT 1

2 番目の 2/3::

SELECT *
FROM
(
    SELECT *
    FROM
    (
       SELECT * FROM Table1 
       UNION ALL 
       SELECT * FROM Table2
       UNION ALL
       SELECT * FROM Table3 
       UNION ALL
    ) sub
    ORDER BY ID DESC
    LIMIT 3
) t 
ORDER BY Id ASC
LIMIT 2, 1

最後の 1/3 レコード:

SELECT *
FROM
(
    SELECT *
    FROM
    (
       SELECT * FROM Table1 
       UNION ALL 
       SELECT * FROM Table2
       UNION ALL
       SELECT * FROM Table3 
       UNION ALL
    ) sub
    ORDER BY ID DESC
    LIMIT 3
) t 
ORDER BY Id DESC
LIMIT 1
于 2012-11-01T13:01:26.697 に答える
0

次のような LIMIT 句と OFFSET 句を試してみてください。

SELECT column FROM table1 LIMIT X OFFSET Y
union
SELECT column FROM table2 LIMIT X OFFSET Y+10
union
SELECT column FROM table3 LIMIT X OFFSET Y+20

ただし、LIMIT と OFFSET をパラメーター化する必要があります。

于 2012-11-01T13:01:35.803 に答える