这个WHERE子句有什么问题?

问题描述:

是否有这个查询不起作用的原因?如果我只是排除WHERE子句,下面的查询将起作用。我需要知道它有什么问题。我知道$ key的给定值存在于表中,那么为什么这不起作用呢?这个WHERE子句有什么问题?

$q = "SELECT * WHERE t1.project=$key 
      FROM project_technologies AS t1 
      JOIN languages AS t2 
      ON t1.language = t2.key"; 

表的有以下字段:

project_technologies
- 关键
- 项目
- 语言

语言
- 关键
- 命名

+0

强制性评论说“当心SQL注入的邪恶怪物”的正确途径。 – 2009-10-22 09:07:32

WHERE在FROM/JOIN之后。

SELECT * 
FROM  project_technologies AS t1 
JOIN  languages AS t2 
ON  t1.language = t2.key 
WHERE  t1.project=$key 

FROMSELECT声明中出现在WHERE之前。

"SELECT * FROM project_technologies AS t1 INNER JOIN languages AS t2 ON t1.language = t2.key WHERE t.project = '$key'"; 

SELECT * 
      FROM project_technologies AS t1 
      JOIN languages AS t2 
      ON t1.language = t2.key 
      WHERE t1.project=$key 

您应该在FROM子句后,把你的WHERE子句。

SELECT * FROM project_technologies AS t1 
JOIN languages AS t2 
    ON t1.language = t2.key 
WHERE t1.project=$key 

where应该是在年底(合并后)

在SQL你写:

SELECT ... FROM表... WHERE条件

你把东西以错误的顺序...

WHERE子句出现在FROM子句之后。

SELECT * 
FROM project_technologies as t1 
JOIN languages as t2 
on t1.language = ts.key 
WHERE t1.project = $key 

我认为WHERE必须在FROM之后。你试过这个吗?

$q = "SELECT * 
      FROM project_technologies AS t1 
      JOIN languages AS t2 
      ON t1.language = t2.key 
      WHERE t1.project=$key"; 

也许这应该是把它写

"SELECT * FROM project_technologies AS t1 JOIN languages AS t2 ON t1.language = t2.key WHERE t1.project=$key";