J'essaie d'insérer des valeurs dans une table en fonction des conditions d'une autre table. Idéalement, je voudrais quelque chose comme ceci: donc avant de créer la nouvelle entrée table_a, je veux m'assurer que l'utilisateur n'est pas bloqué en vérifiant table_b. P> Je sais Je ne peux pas insérer d'utilisateur avec où alors je ne sais pas comment je peux faire cela. P> p>
3 Réponses :
semble que vous recherchiez un Insérer ... Sélectionnez CODE> Query
:
INSERT INTO table_a (user_id) SELECT 'contactId' FROM table_b AS tb WHERE tb.user_id = 'userA' AND tb.contact_id = 'contactId' AND tb.user_blocked = false
La valeur que vous insérez à table_a doit-elle toujours être extraite de table_b? Ou la déclaration ci-dessus peut-elle être écrite en insérant des valeurs dans l'insert externe
@alionhego: Non, il n'est pas nécessaire, vous pouvez écrire des valeurs comme vous le souhaitez, comme dans l'exemple que je vous ai donné, où je mets la valeur 'contact_id' code>.
Vous pouvez utiliser "Insérer à partir de SELECT". Par exemple Ce lien vous aidera. P>
Vous pouvez utiliser T-SQL pour cela ou créer une procédure stockée.
première vérification si le Ceci est un exemple: P> user_id code> est bloqué dans
Table_b code> et si la réponse est fausse Insérez la valeur sur
TABLE_A CODE> P>
DECLARE @user_id INT = 1234
IF ((SELECT user_blocked FROM table_b b WHERE b.USER_id = @user_id) = 'false')
BEGIN
INSERT INTO table_a
VALUES(@user_id,....)
END