我在MySQL数据库中有两个表
urltracker列id和urlclicked 和urlreferrer,列id,url_id和urlreferrer
urltracker实际上只是一个查找表,其中urlreferrer表中的url_id列是表之间的链接。
示例DDL:
CREATE TABLE urltracker (
id SERIAL PRIMARY KEY,
urlclicked VARCHAR(200) NOT NULL
);
CREATE TABLE urlreferrer (
id SERIAL PRIMARY KEY,
url_id BIGINT UNSIGNED NOT NULL,
urlreferrer VARCHAR(200) NOT NULL
FOREIGN KEY(url_id) REFERENCES urltracker(id)
);
我要做的就是加入这两个表,这样我就可以通过查找urlclicked表获取点击的url以及urlreferrer表中针对此特定url的引用者总数。
我已经搞砸了2个小时而且我没有到达任何地方,我没有数据库专家可以请任何人解释如何实现这一目标。
提前致谢
答案 0 :(得分:1)
如果您想要所有网址,
Select urlClicked, Count(*)
From urlReferrer R
Join urlTracker U
On U.id = R.urlId
Group By urlClicked
如果您只想要指定的初始点击,
Select urlClicked, Count(othRef.id)
From urlReferrer R
Join (urlTracker U Join urlReferrer othRef
On othRef.urlId = U.urlId)
On U.id = R.urlId
Where R.id = [Specified Referrer's Id]
Group By urlClicked
- 编辑以更正Where子句的顺序
答案 1 :(得分:1)
我想:
SELECT ut.urlclicked, COUNT(ur.id)
FROM urltracker ut JOIN urlreferrer ur ON (ut.id = ur.url_id)
GROUP BY ut.urlclicked
应该这样做。