Mysql多表选择

标签 mysql

我有一个表,例如名为“node”,我需要从中返回值,如下所示:

SELECT nid FROM node WHERE type = "book"

在获得值列表后,我们可以这样说:

|**nid**|
|123|
|12451|
|562|
|536|

然后我需要获取这些值,并检查另一个表,以查找在一个联接请求中“path”列的值为“node/123”、“node/12451”(上一个请求返回的编号)的行。如果“路径”列有简单的数字,没有“节点/”,一切都会更容易。 然后还计算相同的数量,即返回的“node/123”。 最终结果如下:

nid |  path  | count(path) | count(distinct path) 
123 |node/123|  412        |       123        
562 |node/562|  123        |       56   

如果在多个单独的查询中完成,工作正常,但不行。

最佳答案

select a.nid from node a join othertable b 
on b.path = concat("node/", a.nid) where type='book'

关于Mysql多表选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840146/

相关文章:

MySQL 连接查询 - 不是唯一的表/别名

php - 如何在不加载整个页面的情况下加载单个 Div 并显示加载状态?

php - 如何搭建一个带有倒计时功能的mysql排队系统?

mysql - 联系人有许多电子邮件,并将它们生成为查询中的额外列

mysql - phpmyadmin mysql 触发器语法错误

mysql - 使用 Laravel 播种 Mysql 数据库时出现奇怪的错误

mysql - 当前记录不符合该索引时在 SQL 中创建新索引

MySQL INNER JOIN 使用

php - 在同一页面和表单中获取结果

php - MYSQL查询优化