这是我执行的查询:
SELECT IDEgzemplarz, Tytul
FROM egzemplarze
WHERE DoWypozyczenia = 0
INNER JOIN ksiazki ON egzemplarze.KsiazkaID = ksiazki.IDKsiazki
这是我在错误“窗口”中得到的查询:
SELECT IDEgzemplarz, Tytul
FROM egzemplarze
WHERE DoWypozyczenia = 0
INNER JOIN ksiazki ON egzemplarze.KsiazkaID = ksiazki.IDKsiazki
LIMIT 0, 25
这是错误:
1064-语法错误'INNER JOIN ksiazki on egzemplarze.KsiazkaID = ksiazki.IDKsiazki LIMIT 0,25'w linii 2
我很好奇为什么当我没有键入查询时,该查询会添加在“ LIMIT 0,25”的末尾。最好的是,如果我运行此查询时不使用语句“ WHERE DoWypozyczenia = 0”,则查询有效...
你有什么主意吗?谢谢您的帮助;)。
答案 0 :(得分:2)
只需从以下位置更改查询即可:
SELECT IDEgzemplarz, Tytul FROM egzemplarze WHERE DoWypozyczenia=0
INNER JOIN ksiazki ON egzemplarze.KsiazkaID = ksiazki.IDKsiazki
收件人:
SELECT IDEgzemplarz, Tytul FROM egzemplarze
INNER JOIN ksiazki ON egzemplarze.KsiazkaID = ksiazki.IDKsiazki
WHERE egzemplarze.DoWypozyczenia=0
实际上,您将WHERE
子句放在了错误的位置。
答案 1 :(得分:0)
SQL中的WHERE子句必须位于结尾
答案 2 :(得分:0)
SQL语句由一组子句组成。您的查询要使用其中四个:SELECT
,FROM
,WHERE
和LIMIT
。请注意,JOIN
是 operator 而不是子句。子句的顺序与上述顺序完全相同。 WHERE
跟在FROM
之后。
我建议您学习使用表别名并限定所有列名。
您的查询应类似于:
SELECT e.IDEgzemplarz, k.Tytul
FROM egzemplarze e INNER JOIN
ksiazki k
ON e.KsiazkaID = k.IDKsiazki
WHERE k.DoWypozyczenia = 0;
我正在猜测这些列来自哪个表,因此e
和k
可能不正确。您编写的查询应明确说明列的来源。
我不知道为什么将LIMIT 0, 25
添加到您的查询中。这将结果集中的行数限制为25行。我的猜测是,您要在用于查询数据库的应用程序中进行一些设置。