2011-10-21 4 views
-2

Je suis un peu confus au sujet de beaucoup de tables de relations, et le code qui va avec eux.Plusieurs à plusieurs requêtes de relations

je table1:

id, username 

Et table2:

id, votes_up, votes_down 

Et une table d'aide (htable):

vu, vd, adsid 

Ce que je veux arriver est, quand une annonce est voté haut ou bas, ce vote ne va pas à toutes les publicités.

Ma tentative de sélection de données:

mysql_query("SELECT * 
      FROM dbo.tab2 
      INNER JOIN dbo.htable 
      WHERE tab2.votes_up = htable.vu 
       AND htable.votes_down = htable.vd 
      INNER JOIN dbo.tab1 
      WHERE htable.adsID = table1.ID"); 

Et mon insert tentative:

mysql_query("INSERT INTO dbo.htable (vu, vd, adsid) 
      VALUES 
      (SELECT FROM dbo.tab2.votes_up, dbo.tab2.votes_down , dbo.tab1.id)"); 

Ma question: Ces deux requêtes correctes? Si non, comment puis-je les réparer? et quelle est la requête de mise à jour?

+0

Je comprends à peine ce que vous dites. Essayez d'être plus articulé. En outre, vous devez fournir plus d'exemples de code et peut-être un exemple de structure de table plus compréhensible. D'après ce que je peux dire maintenant, vous devriez simplement utiliser plusieurs relations un-à-plusieurs et cela devrait être bon. – casraf

Répondre

0

Je ne comprends pas vraiment votre question, mais vos requêtes SQL sont erronées. Ils devraient probablement être quelque chose comme:

SELECT 
    * 
FROM 
    dbo.tab2 as tab2 
    INNER JOIN dbo.htable as htable 
     ON tab2.votes_up = htable.vu 
     AND tab2.votes_down = htable.vd 
    INNER JOIN dbo.tab1 as tab1 
     ON htable.adsID = tab1.ID 

et

INSERT INTO dbo.htable (vu, vd, adsID) 
    SELECT 
     votes_up, votes_down, ID 
    FROM 
     dbo.tab2 
+0

J'ai essayé ce code comme vous l'avez dit mais il semble juste écrire dans mon fichier php il ne semble pas comme le code, comme je l'ai écrit –

+0

Ce sont simplement les instructions SQL. Vous devez les passer à la fonction PHP mysql_query() pour les exécuter. Et vous devez également écrire du code pour gérer le résultat de votre requête SELECT, mais vous devriez le faire vous-même, car je n'ai aucune idée de ce à quoi ressemble le reste de votre code. –

+0

J'ai fait votre code, mais il n'a pas inséré à htable, rien, et lors du vote forexemple votes_up> 45 et je vote alors il sera 46, et quand je rafraîchis la page il sera 45 encore et rien n'arrive dans la base de données. une erreur ici? –

Questions connexes