查询可以在没有WHERE的情况下工作,但可以,但不能-“第2行LIMIT 0,25'

时间:2018-12-16 09:45:27

标签: mysql sql

这是我执行的查询:

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”,则查询有效...

你有什么主意吗?谢谢您的帮助;)。

3 个答案:

答案 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语句由一组子句组成。您的查询要使用其中四个:SELECTFROMWHERELIMIT。请注意,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;

我正在猜测这些列来自哪个表,因此ek可能不正确。您编写的查询应明确说明列的来源。

我不知道为什么将LIMIT 0, 25添加到您的查询中。这将结果集中的行数限制为25行。我的猜测是,您要在用于查询数据库的应用程序中进行一些设置。