+-------------+---------+-------------+
| host_name | service | last_change |
+-------------+---------+-------------+
| test.com | PING | 1327004398 |
| test.com | HTTP | 1327004536 |
| test.com | MYSQL | 1327004392 |
| test2.com | PING | 1327127720 |
| test2.com | HTTP | 1327004391 |
| test3.com | PING | 1327213842 |
| test4.com | PING | 1327004368 |
+-------------+---------+-------------+
は、行の右の量をまたがるhost_nameのセル、そのようなビットを持つテーブルにこれをプリントアウトすることです
私はすでに、このようなクエリを使用して、これを行うことができる午前:
SELECT
host_name,
group_concat(service SEPARATOR '|') as service,
group_concat(last_change SEPARATOR '|') as last_change,
FROM table
GROUP BY host_name
そして(パイプが見つかった場所の結果を爆発)、いくつかの操作を行うことで。
の問題は、私が持っている:
私は同じことを行うが、LAST_CHANGEに基づいて結果をソートしたいと思います。私は次のことを試みました:
SELECT
host_name,
group_concat(service SEPARATOR '|') as service,
group_concat(last_change SEPARATOR '|') as last_change,
FROM
(
SELECT * FROM table ORDER BY last_change DESC
) as tmp_table
GROUP BY host_name
しかし、それは動作していないようです。 DESCをASCに変更しても、私が得た結果は変更されません。
結果を順序付けるサブクエリを単独で実行すると、結果がhost_nameでグループ化されていないことを除いて、期待どおりの結果が得られます(明らかにgroup_concatとgroup by文がないためです)。
アイデア?
私はそれをたくさんいただきありがとうございます。
これは本当にの目的ではありません(私)SQL。 MySQLはデータを格納することを意図しています。外部の言語で表示する必要があります。あなたはPHP、C#、java ...でこれをやっても問題ありませんが、SQL-adeptの興味深い教科書です] – Konerak