[英]MySQL Many-to-One relationship
我很難掌握這一點。
我有一個包含host的表,每個表都有十幾行,還有一個帶有points的表,它實際上是包含有關主機的時間軸信息的表。
主持人有很多要點,可以隨時間轉換為關於該主持人狀況的時間表。
如何將其轉換為將x 點與各自的主機分組的SQL查詢?
例:
Host:
id:1
address: 123.456.7.8
name: FooBar
pickles: The good kind
timeline:
Point:
host_id:1
timestamp: 123456
parameter: 123
Point:
host_id:1
timestamp: 123456
paramter:456
重要提示:我也想限制此時間軸列中的條目數。
我已經為此工作了很長一段時間,希望得到一些幫助。
您可以執行類似的子查詢
SELECT h.*, (SELECT COUNT(*) FROM points WHERE host = h.host) as points FROM hosts h
看你的例子像
select id, address, name, pickles,timestamp,parameter from host
left join timeline on host.id = timeline.host_id
order by host.id
但是,如果一個主機可以發生多次,那么我想看看一個例子,其中您作為人類已經從示例數據中得出了如何匹配它們的信息
select * from hosts right join timeline where host.id = timeline.host_id
將返回所有點,並在同一行上包含主機信息。
您可以使用GROUP BY子句和COUNT函數通過host_id進行匯總並獲得點數:
select count(host_id), hosts.id from hosts right join timeline where host.id = timeline.host_id group by host.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.