Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用伪值对表进行内部联接_Mysql - Fatal编程技术网

Mysql 如何使用伪值对表进行内部联接

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

根据@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,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