我怎样才能做这样的事情?
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/