mysql - 在mysql的子查询中使用相同的字段

标签 mysql sql group-by sql-insert

我怎样才能做这样的事情?

INSERT INTO age.page(domain,title_count,youtube_count,ipaddress,updated)
SELECT * FROM 
(
    SELECT domain,
    COUNT(domain) AS titlecount,
   (SELECT COUNT(*) FROM table2 WHERE title = table1.title) AS YoutubeCount, ipaddress
    NOW() AS timeNow
    FROM table1
    GROUP BY domain
    ORDER BY title DESC
) a;

我想使用子查询来获取不同表的计数,但使用主查询中的相同字段。

我想这样做的原因是我不必运行两个查询,而是只运行一个查询。

最佳答案

您可以在子查询中执行此COUNT操作,然后将其与第一个表JOIN:

INSERT INTO age.page(domain, title_count, youtube_count, ipaddress, updated)
SELECT * FROM 
(
    SELECT 
      domain,
      COUNT(domain) AS titlecount,
      t2.titlecount AS YoutubeCount, 
      ipaddress,
      NOW() AS timeNow
    FROM table1
    INNER JOIN
    (
       SELECT title, COUNT(*) Titlecount
       FROM table2 
       GROUP BY title
    ) AS t2 ON t2.title = table1.title   
    GROUP BY domain
    ORDER BY table1.title DESC
) a;

关于mysql - 在mysql的子查询中使用相同的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509163/

相关文章:

php - 如何防止sql注入(inject)?无需修改 SQL 查询

php - 格式化sql查询的十进制输出

SQL 按 "weight"对记录进行排序

Python:如何对给定的百分位数进行分组?

mysql - 我怎样才能找到借方和贷方平衡的客户?

php - 将字符串添加到表中现有值的更短方法

Php,PDO 查询,获取所有返回无

sql - Rails 3 HABTM 按记录关联模型属性查找

sql - 是否可以将一个表中的所有数据复制到另一个表中,再加上一个额外的列?

sql-server - 内部联接并将多个表分组为一行