Frage

ich habe SQL-Abfrage

select * from "Roles"  Join "Users"  On "Roles".Role="Users".RoleId

zurückgeben Fehlerspalte Roles.role existiert nicht

query

select * from "Roles"  Join "Users"  On Roles.Role=Users.RoleId

return Fehler FROM-Klausel fehlender Eintrag für die Tabelle "Rollen"

Wie kann ich dieses Problem lösen? i aways arbeiten mit MS SQL

War es hilfreich?

Lösung

Sie können die Namen von Rollen in der Join-Bedingung verwenden. Intern werden alle Tabellennamen wie Rollen, Rollen, Rollen, Rollen sind in Rollen (Kleinbuchstaben) umgewandelt. Wenn Sie auf „Rollen“ verwenden, „Rollen“, „Rollen“, „Rollen“ ist der Name genau verwendet, wie Sie, dass (keine Kleinbuchstaben convertion) geschrieben haben, so in der FROM-Teil getroffen werden, „Rollen“ und „Benutzer“ Tabellen und in der Join-Bedingung die Tabellennamen sind Rollen und Benutzer und solche Tabbles nicht existieren.

Der simples Weg ist nur Tabellennamen zu verwenden, ohne „“ Verwenden Sie nur einfache Rollen anstelle von „Rollen“, so dass Sie Rollen oder Rollen schreiben können unabhängig die Buchstaben Groß- / Kleinschreibung.

Andere Tipps

schreiben Sie es wie auf diese Weise:

select * from Roles  INNER JOIN Users  On (Roles.Role= Users.RoleId)

INNER JOIN zwei Tabellen für weitere Informationen. ..

oder Sie können die einfache Art und Weise verwenden, dass es mit den meisten DBMS funktioniert:

select * from Roles,Users where Roles.Role= Users.RoleId

Ich vermute, Sie benötigen "Roles"."Role" = "Users"."RoleId" zu schreiben, weil es in der Lage, beschwert ist über nicht die Kleinspaltennamen zu finden.

Wie andere erwähnt haben, ist es in der Regel am einfachsten alles wie Kleinbuchstaben zu erstellen, auch wenn Sie in Abfragen gemischten Fall verwenden: so, wenn die Tabelle „Rollen“ bezeichnet wird und die Spalte „Rolle“ usw. können Sie schreiben Roles.Role = Users.RoleId und die Identifikatoren werden konvertiert Fall hinter den Kulissen zu senken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top