mysql> select * from facts;
+----+---------+------------+---------+
| id | fact_id | fact_value | host_id |
+----+---------+------------+---------+
| 1 | 1 | rh5 | 1 |
| 2 | 1 | rh4 | 2 |
| 3 | 2 | virtual | 1 |
| 4 | 2 | virtual | 2 |
| 5 | 3 | rack 2 | 1 |
+----+---------+------------+---------+
mysql> select * from hosts;
+---------+-----------+
| host_id | host_name |
+---------+-----------+
| 1 | bellagio |
| 2 | mirage |
+---------+-----------+
我使用的查詢執行以下操作:顯示MySQL的結果在一排
mysql> select host_name,fact_value from hosts as a left join facts as b on
> b.host_id=a.host_id and b.fact_id in (1,2,3);
+-----------+------------+
| host_name | fact_value |
+-----------+------------+
| bellagio | rh5 |
| bellagio | virtual |
| bellagio | rack 2 |
| mirage | rh4 |
| mirage | virtual |
+-----------+------------+
我想要的結果打印一行每個主機,注意它打印在一個單獨的行各fact_value。爲什麼我有IN
子句的原因是這個表爲每個主機有超過40個可能的列。我只想少數(我在這個例子中選擇3)。
這就是我要找的。
+-----------+--------+-----------+-----------+
| host_name | value1 | value 2 | value 3 |
+-----------+--------+-----------+-----------+
| bellagio | rh5 | virtual | rack 2 |
| mirage | rh4 | virtual | NULL |
+-----------+--------+-----------+-----------+
哦,我看到它做了什麼,其實讓我編輯我的帖子。我的不好,我想把這些值放到他們自己的專欄中,這樣我就可以在PHP中輕鬆解析數據。 – luckytaxi 2011-02-10 02:00:55