0
votes

Insérer une instruction SQL en fonction de la condition d'une autre table

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: xxx

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.

Je sais Je ne peux pas insérer d'utilisateur avec où alors je ne sais pas comment je peux faire cela.


0 commentaires

3 Réponses :


4
votes

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


2 commentaires

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' .



0
votes

Vous pouvez utiliser "Insérer à partir de SELECT". Par exemple Ce lien vous aidera.


0 commentaires

0
votes

Vous pouvez utiliser T-SQL pour cela ou créer une procédure stockée.

première vérification si le 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>

Ceci est un exemple: 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


0 commentaires