SQL Insert Into avec Inner Join
Je veux faire de ma requête d'insertion qui a une jointure interne à la table des Utilisateurs.
L'exemple des tables est comme ceci:
Utilisateurs:
id | fullName | preferredName | email | mobile | password
1 | Pan Lim | Lim | limpan45@gmail.com | 64557812 | passone
2 | Gong My | Gong | gong45@gmail.com | 61345671 | passtwo
Commandes:
id | userid(Foreign key of "id" from Users | timestamp
1 | 1 | 2016-06-10 11:45:31
Je suis en train de les insérer dans les Ordonnances relatives à seulement connaître le nom d'utilisateur à partir de la table des Utilisateurs. Il s'afficher comme ceci:
Commandes:
id | userid(Foreign key of "id" from Users | timestamp
1 | 1 | 2016-06-10 11:45:31
2 | 2 | 2016-08-14 12:45:31
Mais quand je l'ai tester sur ma requête SQL, il a erreur sur cette requête.
INSERT INTO Orders (id, userid, timestamp)
SELECT Orders.id, Orders.userid, Orders.timestamp FROM Users INNER JOIN Orders ON Orders.id = Users.id
- quel est le "certains" d'erreur?
- je pense que vous devriez être SUR les Commandes.userid = Utilisateurs.id
- une bonne façon de résoudre une requête d'insertion qui ne fonctionne pas avec un mystérieux erreur qui ne peut pas être nommé est de s'assurer que la requête select fonctionne sur son propre.
- Vous ne savez pas si elles sont faites, mais on peut voir Lim et Gong adresses de courriel et numéros de téléphone de votre question. Si réel qu'il serait mieux pour dissimuler eux.
Vous devez vous connecter pour publier un commentaire.
Si votre id est pas incrément automatique dans la table Commandes.
Si votre id est incrément automatique dans la table Commandes.
Si Les Ordres.Id est unique, votre requête SQL échoue.
Vous essayez d'insérer une ou plusieurs enregistrements dans la table Commandes de sorte qu'il sera doublons d'Id.. je ne suis pas sûr de ce que vous essayez d'atteindre, mais cela devrait fonctionner:
Edit: Les Ordres.L'Id doit être un identifiant unique pour l'enregistrement dans les commandes et les Utilisateurs.L'Id doit être un identifiant unique pour l'enregistrement dans la table utilisateur? dans ce cas, vous ne pouvez pas joindre sur ces deux.