简体   繁体   English

计数SQL查询PHP

[英]Count SQL query PHP

I want to count for each gallery number of images in it, here's my query: 我想为其中的每个图库计数,这是我的查询:

$req = db_query("SELECT count(*) FROM node,node_file WHERE node.nid = node_file.nid AND nid = ".$value['nid']);

here's the two tables : 这是两个表:
node_file: node_file:

nid  |fid   |
-------------
  1  |  1   | 
-------------
  1  |  2   |  
-------------
  1  |  3   |
-------------
  2  |  1   |
-------------
  2  |  2   |
-------------
  2  |  3   |

node: 节点:

 nid |type  |
-------------
  1  |Gallery1| 
-------------
  2  |gallery2|  

The error : Query : SELECT count(*) FROM node,node_file WHERE node.nid = node_file.nid AND nid = 34 Message : SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'nid' in where clause is ambiguous 错误: Query : SELECT count(*) FROM node,node_file WHERE node.nid = node_file.nid AND nid = 34 Message : SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'nid' in where clause is ambiguous

Thanks! 谢谢!

Both of your tables have column nid and you are using column in AND clause so you need to specify to which table it belongs. 您的两个表都具有列nid并且您正在使用AND子句中的列,因此您需要指定它属于哪个表。

SELECT 
    count(*)
FROM
    node,
    node_file
WHERE
    node.nid = node_file.nid AND node.nid = 34

OR 要么

SELECT 
    count(*)
FROM
    node,
    node_file
WHERE
    node.nid = node_file.nid AND node_file.nid = 34

用这个

$req = db_query("SELECT count(*) FROM node,node_file WHERE node.nid = node_file.nid AND node.nid = ".$value['nid']);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM