“ambigu nom de la colonne” en SQLite INNER JOIN

J'ai deux tables dans une DB SQLite, INVITEM et SHOPITEM. Leurs partagé attribut est ItemId et je veux effectuer une JOINTURE INTERNE. Voici la requête:

    SELECT  INVITEM.CharId AS CharId, 
            INVITEM.ItemId AS ItemId 
      FROM  (INVITEM as INVITEM 
INNER JOIN  SHOPITEM AS SHOPITEM 
        ON  SHOPITEM.ItemId = INVITEM.ItemId)
     WHERE  ItemId = 3;

SQLite ne l'aime pas :

SQL error: ambiguous column name: ItemId

L'erreur disparaît si j'écris WHERE INVITEM.ItemId = 3, mais depuis que la condition est plus ou moins spécifié par l'utilisateur, je préfère le faire fonctionner sans avoir à spécifier la table. JOINTURE NATURELLE semble résoudre le problème, mais je ne sais pas si la solution est assez générale (c'est à dire que je pourrais utiliser dans ce cas, mais je ne suis pas sûr si je peux l'utiliser dans tous les cas)

Toute autre syntaxe SQL qui peut résoudre le problème?

OriginalL'auteur ggambett | 2009-02-17