Mysql 如何使用伪值对表进行内部联接
根据@scaisEdge发布的解决方案。我还有一个关于“内部连接”的问题。我试着用“pid”值加入它们。但sql表示“未知” 这是他的密码:Mysql 如何使用伪值对表进行内部联接,mysql,Mysql,根据@scaisEdge发布的解决方案。我还有一个关于“内部连接”的问题。我试着用“pid”值加入它们。但sql表示“未知” 这是他的密码: SELECT SUBSTRING(`page_url`,-3) as pid from `prop_log` WHERE `page_url` REGEXP '[0-9]' group by SUBSTRING(`page_url`,-3) order by count(*) 这是我的: SELECT prop_sid,SUBSTR
SELECT SUBSTRING(`page_url`,-3) as pid
from `prop_log`
WHERE `page_url` REGEXP '[0-9]'
group by SUBSTRING(`page_url`,-3)
order by count(*)
这是我的:
SELECT prop_sid,SUBSTRING(`page_url`,-3) as pid
from `prop_log`
inner join prop_db2 on prop_db2.prop_id=pid
WHERE `page_url` REGEXP '[0-9]'
group by SUBSTRING(`page_url`,-3)
order by count(*) desc
limit 5
PS.prop_sid来自prop_db2您不能在where(或on)条件下使用别名
SELECT prop_sid,SUBSTRING(`page_url`,-3) as pid
from `prop_log`
inner join prop_db2 on prop_db2.prop_id=SUBSTRING(`page_url`,-3)
WHERE `page_url` REGEXP '[0-9]'
group by SUBSTRING(`page_url`,-3)
order by count(*) desc
limit 5
允许在group by中的order by和某些mysql版本中使用别名,但在where中不允许使用别名
您还应该对不在GROUPBY中的列使用(伪)聚合函数
SELECT min(prop_sid),SUBSTRING(`page_url`,-3) as pid
from `prop_log`
inner join prop_db2 on prop_db2.prop_id=SUBSTRING(`page_url`,-3)
WHERE `page_url` REGEXP '[0-9]'
group by SUBSTRING(`page_url`,-3)
order by count(*) desc
limit 5
或者通过与查询一致的方式将列添加到组中
SELECT prop_sid,SUBSTRING(`page_url`,-3) as pid
from `prop_log`
inner join prop_db2 on prop_db2.prop_id=SUBSTRING(`page_url`,-3)
WHERE `page_url` REGEXP '[0-9]'
group by SUBSTRING(`page_url`,-3), prop_sid
order by count(*) desc
limit 5
我已经发布了一个回复,还有一些其他的建议。。希望就是你想要的
SELECT prop_sid, prop_db2.prop_id as pid
from `prop_log`
inner join prop_db2 on prop_db2.prop_id=SUBSTRING(`page_url`,-3)
WHERE `page_url` REGEXP '[0-9]'
group by prop_db2.prop_id
order by count(*) desc
limit 5