请帮助解决内部联接错误。我在MS ACCESS中完成了这个查询 - 这是工作,但是当它在phpmyadmin或cmd中时 - 错误
SELECT zakaz.c_id, Count(zakaz.c_id) AS [counter]
FROM country JOIN ((resort JOIN hotel ON resort.res_id = hotel.res_id)
JOIN ([number] JOIN zakaz ON (number.[num_id] = zakaz.[num_id])
AND (number.[num_id] = zakaz.[cost])) ON hotel.h_id = number.[h_id])
ON country.c_id = resort.c_id GROUP BY zakaz.c_id;
答案 0 :(得分:0)
在MySQL中,方括号( [
]
)不是标识符的有效字符。
在Access中,这些用于包含标识符。在MySQL中,我们使用反引号字符来包含需要转义的标识符。 (这允许我们包含标识符中通常不允许的空格或其他字符,并允许我们使用保留字作为标识符。在查询中,没有标识符需要在反引号中转义。
此外,在MySQL中,这些parens不是必需的。
查询可以用人类读者更容易破译的形式表达。例如:
SELECT zakaz.c_id
, COUNT(zakaz.c_id) AS `counter`
FROM country
JOIN resort
ON resort.c_id = country.c_id
JOIN hotel
ON hotel.res_id = resort.res_id
JOIN number
ON number.h_id = hotel.h_id
JOIN zakaz
ON zakaz.num_id = number.num_id
AND zakaz.cost = number.num_id
GROUP BY zakaz.c_id
(zakaz.cost
需要等于number.num_id
,以及zakaz.num_id
......这似乎是原始查询中指定的条件,这有点奇怪。 )