錯誤只顯示部分查詢,有人可以看到我犯的錯誤嗎?mysql查詢失敗原因不明(對我來說)
我想要的是基於標籤獲取條目,有3個表格,nv_entries,nv_tags和nv_images。如果標籤位於nv_tags表中,那麼它應該使用該表中的entrie_id從nv_entries和nv_images中獲取內容。
的表是這樣的:
nv_entries:
id - title - year - etc..
nv_tags:
id - entrieid - tag
nv_images:
id - entrieid - source
查詢失敗:您的SQL語法錯誤;請查看與您的MySQL服務器版本相對應的手冊,以便在第1行的'GROUP BY nv_entries JOIN ON nv_entries.id = nv_tags.entrie_id AND nv_tags.tag IN'處使用正確的語法。
在腳本如下echod這樣的:
GROUP BY nv_entries JOIN ON nv_entries.id = nv_tags.entrie_id AND nv_tags.tag IN ('tree','green') HAVING COUNT(DISTINCT nv_tags.tag) = 2
這是腳本(部分):
for ($i = 0; $i < count($tags); $i++) {
$tags[$i] = trim($tags[$i]);
}
$query = "GROUP BY nv_entries JOIN ON nv_entries.id = nv_tags.entrie_id AND nv_tags.tag IN (";
// add with following comma
for ($i = 0; $i < count($tags)-1; $i++) {
$query .= "'".$tags[$i]."',";
}
// add last without a comma
$query .= "'".$tags[count($tags)-1]."'";
$query .= ") HAVING COUNT(DISTINCT nv_tags.tag) = ".count($tags);
echo $query;
$entries = execSelect($query);
echo "<pre>";
print_r($entries);
echo "</pre>";
查詢的第一部分在哪裏(例如'SELECT this FROM that ...')? – Wiseguy
是的,當組合隨機的SQL子句時,通常不會獲得有效的SQL。什麼不清楚? –
'GROUP BY'和'JOIN'的順序錯誤,'JOIN'和'ON'之間缺少一些東西。 – Gumbo