何らかの理由でこれを行う必要があります。いつか(上記のような)複数行を1行に変更するマルチカラム
limit usage tariff total
0 10 10 700 7000
11 20 10 900 9000
21 30 10 1800 18000
31 > 11 2700 29700
クエリリターン4行の最大またはわずか3行:私はこのような結果たクエリを有します。 私はちょうど1行と、このようなマルチコラム(ちょうど1行下のリスト)に行を変更したい:
limit1 usage1 tariff1 total1 limit2 usage2 tariff2 total2
0 10 10 700 7000 11 20 10 900 9000
limit3 usage3 tariff3 total3 limit4 usage4 tariff4 total4
21 30 10 1800 18000 31 > 11 2700 29700
問合せの戻りかのわずか3行、total4まで列limit4の値は空になります。私はそのようにする方法を知らない。
ID limit usage tariff total
1 0 10 10 700 7000
2 11 20 10 900 9000
3 21 30 10 1800 18000
4 31 > 11 2700 29700
私はこのようにそれ1行にしよう:
SELECT e.*,f.id AS id4,f.limit AS limit4,f.usage AS usage4,f.tariff AS tariff4,f.total AS total4
FROM
(SELECT c.*,d.id AS id3,d.limit AS limit3,d.usage AS usage3,d.tariff AS tariff3,d.total AS total3
FROM
(SELECT b.id AS id1,b.limit AS limit1,b.usage AS usage1,b.tariff AS tariff1,b.total AS total1,
a.id AS id2,a.limit AS limit2,a.usage AS usage2,a.tariff AS tariff2,a.total AS total2
FROM testtariff a
INNER JOIN testtariff b ON a.id!=b.id
LIMIT 1) c INNER JOIN testtariff d ON c.id1 != d.id AND c.id2 != d.id
LIMIT 1) e INNER JOIN testtariff f ON e.id1 != f.id AND e.id2 != f.id
AND e.id3 != f.id
LIMIT 1
それは私のように仕事リストがされるので、私は1つのID列を追加
編集
4行は期待されていますが、3行は動作しません。カーソルを使うべきですか?
特定の方法で出力をフォーマットするのは、データベースではなくデータベースと通信するアプリケーションの作業です。 –
Hi Dan、実際にはmysqlストアドプロシージャからのリスト出力は1行しか受け付けない別のストアドプロシージャに送られます。 – advcha