Вопрос

I have a database and I am executing a query:

select * from 
       Exams LEFT OUTER JOIN Test on Test.tExamID = Exams.eID       
       LEFT OUTER JOIN Test on Users.userID = Test.tUserID

But I got an error ambiguous column name main.Test.tID. Have you ever seen that before? Please help me to figure out what happen.

My database below:

    CREATE TABLE [Exams] (
      [eID] INTEGER NOT NULL PRIMARY KEY, 
      [eType] INTEGER NOT NULL, 
      [eLevel] INTEGER NOT NULL, 
      [eTime] INTEGER, 
      [eNote] CHAR);


    CREATE TABLE [Users] (
      [userID] TEXT NOT NULL, 
      [userPassword] TEXT NOT NULL);

    CREATE UNIQUE INDEX [userID] ON [Users] ([userID]);


    CREATE TABLE [Test] (
      [tID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
      [tUserID] TEXT NOT NULL REFERENCES [Users]([userID]), 
      [tExamID] INTEGER NOT NULL REFERENCES [Exams]([eID]), 
      [tDate] DATE NOT NULL, 
      [tScore] INTEGER NOT NULL, 
      [tNote] CHAR NOT NULL);
Это было полезно?

Решение

You probably introduced a typo ... you probably wanted to have:

select * from 
Exams LEFT OUTER JOIN Test on Test.tExamID = Exams.eID       
LEFT OUTER JOIN Users on Users.userID = Test.tUserID
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top