2015-03-25 58 views
0

我试图从该表这是可能在1个MySQL的做查询

SELECT id, name FROM app_names 

让所有的应用程序的名称,并使用该数据获取这些结果

SELECT count(*) FROM users_dailyrecords WHERE day='x' appName='THE ID FROM THE SELECT ABOVE' 

,并用结果的查询我想插入它

INSERT INTO app_stats (appID, day, totalUsers) VALUES ('appID', 'x', 'RESULT FROM count(*)') 

我可以很容易地写一个PHP脚本来做到这一点,但我认为它可以完成前tty轻松使用mysql查询。

+0

是的,有这样的事情,因为INSERT SELECT语句 – Ghost 2015-03-25 02:42:02

回答

1

是的,你可以将所有的这些:

INSERT INTO app_stats(appID, day, totalUsers) 
    SELECT 'appID', 'x', count(*) 
    FROM users_dailyrecords 
    WHERE day = 'x' AND 
      appName IN (name FROM app_names); 

目前还不清楚什么appName部分在做什么。据推测,users_dailyrecords中的唯一应用程序应该是appName中的有效应用程序。这听起来像是一个外键关系的好地方。

+0

是的appName是不需要我忘了删除时,发布这一点。这个查询是有道理的,我认为它应该工作。我唯一的问题是,这会插入1条记录吗?我在app_names表中有大约80条记录,我想插入每个应用的统计信息。 – Dave 2015-03-25 02:50:57

+0

这将插入'select'返回的所有记录。你可以单独运行'select'来查看它们。 – 2015-03-25 02:51:40

+0

太棒了,这是非常漂亮,然后几个选择和PHP循环。 – Dave 2015-03-25 02:56:13