---
title: "Syntax error in FROM clause"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182014-syntax-error-in-from-clause"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pedda"
published: "2010-01-14T11:58:19.000Z"
updated: "2010-01-14T20:25:11.000Z"
replies: 12
views: 901
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/182014-syntax-error-in-from-clause"
---

# Syntax error in FROM clause

## #1 — Pedda, 2010-01-14T11:58Z

Har kört fast med min select.
Någon som ser vad jag gör för fel?

```
"SELECT f.functionId, f.functionName, f.functionIdentifier, h.hardwareId, h.hardwareName " +
"FROM hardware h " +
"INNER JOIN (functions f INNER JOIN references r " +
"ON f.functionId = r.ref_function) " +
"ON h.hardwareId = r.ref_hardware " +
"WHERE r.ref_manual=" + manualId +
" ORDER BY f.functionName ASC";
```

Bifogar även en bild så det är lättare att förstå relationerna.

Bilagor:

- [relationships.png](https://www.webforum.nu/a/21261.png)

Permalänk: https://www.webforum.nu/p/182014

## #2 — nitro2k01, 2010-01-14T12:25Z

Spontant ser det rätt ut. Om du inte har provat det, prova att bygga upp frågan från början bit för bit och se var felet uppstår.

Permalänk: https://www.webforum.nu/p/2222928

## #3 — The_Hulk, 2010-01-14T12:49Z

Känns som att du har fel ordning på dina inner join. Kanske bara är jag inte som kan det till 100%. Du har ju en relation mellan h och r, mellan f och r. Borde inte du joina in r före f?

```
"SELECT f.functionId, f.functionName, f.functionIdentifier, h.hardwareId, h.hardwareName " +
"FROM hardware h " +
"INNER JOIN references r ON h.hardwareId = r.ref_hardware " +
"INNER JOIN functions f ON f.functionId = r.ref_function " +
"WHERE r.ref_manual=" + manualId +
" ORDER BY f.functionName ASC";
```

Jag kan vara ute och cykla men det skulle vara min gissning.

Permalänk: https://www.webforum.nu/p/2222931

## #4 — Pedda, 2010-01-14T12:58Z

Har testat det redan och det ger samma felmeddelande.

Permalänk: https://www.webforum.nu/p/2222933

## #5 — The_Hulk, 2010-01-14T13:05Z

Om du hoppar över en av "inner join" t.ex. för att börja testa, hur fungerar det då?

Hmm, är det inte bättre att ha references som huvudtabell och  joina in hardware och functions med tanke på att references ligger med i where-satsen?

Permalänk: https://www.webforum.nu/p/2222934

## #6 — SPiN, 2010-01-14T13:14Z

Jag tycker om att ha referenstabellen "ytterst";

```
select
   f.functionId,
   f.functionName,
   f.functionIdentifier,
   h.hardwareId,
   h.hardwareName
from
   `references` as r
   inner join
      `functions` as f
      on f.functionId=r.ref_function
   inner join
      `hardware` as h
      on h.hardwareId=r.ref_hardware
where
   r.ref_manual=:manualId
order by
   f.functionName asc
```

Problemet med syntax error kan dock ha att göra med att "references" och "functions" kan vara reserverade ord i din DBMS. Ovanstående kod utgår från MySQL, använder du Access eller SQL Server byter du ut \`tabellnamn\` mot \[tabellnamn\].

Permalänk: https://www.webforum.nu/p/2222937

## #7 — jme, 2010-01-14T13:32Z

Jag skulle nog också gissa att problemet ligger i att du använder ett reserverat ord (references). Pröva atta omsluta det ordet med backticks (i MySql): \`references\`.

Permalänk: https://www.webforum.nu/p/2222939

## #8 — Troxy, 2010-01-14T13:33Z

I det första inlägget så "joinar" du en "derived tabled" som du kallar "h".
Men du verkar ha glömt att skriva "AS h" så det får inte rätt alias.

Permalänk: https://www.webforum.nu/p/2222940

## #9 — Pedda, 2010-01-14T13:35Z

> **[SPiN skrev:](https://www.webforum.nu/p/1494471)**
>
> Jag tycker om att ha referenstabellen "ytterst";
> 
> ...
> 
> Problemet med syntax error kan dock ha att göra med att "references" och "functions" kan vara reserverade ord i din DBMS. Ovanstående kod utgår från MySQL, använder du Access eller SQL Server byter du ut \`tabellnamn\` mot \[tabellnamn\].

Ditt förslag ger felmeddelandet:
Syntax error (missing operator) in query expression 'f.functionId=r.ref_function inner join hardware as h on h.hardwareId=r.ref_hardware'.

Det är en Access databas, och jag har testat med hakparenteser och även testat att döpa om tabellerna, men resultatet är detsamma ändå.

Permalänk: https://www.webforum.nu/p/2222941

## #10 — jme, 2010-01-14T13:45Z

Vad jag vet så behöver man inte skriva AS.

Foo AS f är samma sak som Foo f.

Permalänk: https://www.webforum.nu/p/2222946

## #11 — Pedda, 2010-01-14T14:00Z

Verkar som att references var ett reserverat ord iaf. Vet inte varför det inte slog igenom på en gång när jag bytte namn på tabellen, men nu fungerar det med min ursprungliga query.

Permalänk: https://www.webforum.nu/p/2222949

## #12 — SPiN, 2010-01-14T14:03Z

> **[Pedda skrev:](https://www.webforum.nu/p/1494475)**
>
> Ditt förslag ger felmeddelandet:
> Syntax error (missing operator) in query expression 'f.functionId=r.ref_function inner join hardware as h on h.hardwareId=r.ref_hardware'.
> 
> Det är en Access databas, och jag har testat med hakparenteser och även testat att döpa om tabellerna, men resultatet är detsamma ändå.

Eh, missade bara en 'as r' i frågan. Koncentrerade mig mer på att innesluta tabellnamnen då jag gissade på att references var ett reserverat ord. ;)

Permalänk: https://www.webforum.nu/p/2222951

## #13 — nitro2k01, 2010-01-14T20:25Z

> **[jme skrev:](https://www.webforum.nu/p/1494481)**
>
> Vad jag vet så behöver man inte skriva AS.
>
> Foo AS f är samma sak som Foo f.

Jag med min ganska begränsade erfarenhet av olika SQL-dialekter har fått för mig att man bör använda AS vid värde-namn, men undvika det vid tabellnamn, alltså:

```
SELECT b.foo AS myfoo FROM bar b;
```

För MySQL kvittar det i båda fallen, men jag har något minne av att Oracle ogillar antingen att man använder AS vid tabellalias, eller att man inte gör det vid värdealias. Andra DBMS'er vet jag inget om. Någon som vet säkert får gärna bekräfta eller sparka mig i smalbenet om jag har fel. :)

Permalänk: https://www.webforum.nu/p/2223000

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182014-syntax-error-in-from-clause
