2009-10-22 88 views
0

是否有這個查詢不起作用的原因?如果我只是排除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

回答

6

WHERE在FROM/JOIN之後。

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

FROMSELECT聲明中出現在WHERE之前。

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

您應該在FROM子句後,把你的WHERE子句。

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

where應該是在年底(合併後)

3

在SQL你寫:

SELECT ... FROM表... WHERE條件

你把東西以錯誤的順序...

3

WHERE子句出現在FROM子句之後。

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

我認爲WHERE必須在FROM之後。你試過這個嗎?

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

也許這應該是把它寫

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