2012-08-09 5 views
0

J'essaie de comprendre le sujet des tables jointes dans SQL. Je sais qu'il ya plusieurs jointures, mais pas sûr de mettre en œuvre ici:SQL - Joindre deux tables

Voici ma ligne de SQL en php:

$sql=mysql_query(" 
SELECT * FROM comments 
WHERE item_id = '{$item_id}' 
    AND review > '' 
ORDER BY good DESC, rate_id ASC"); 

C'est ce que je veux me joindre à: Une autre table appelée « utilisateurs ». * "users" et "comments" ont tous deux une colonne appelée "user_id" à joindre. * Je veux associer ces deux pour trouver le "nom d'utilisateur" complet dans la table des utilisateurs.

Je sais que SELECT n'est pas une bonne pratique; mais pour le plaisir de cette démo, pouvez-vous l'inclure ici? Je connais aussi les possibilités d'injection MySQL à surveiller. **

Répondre

2

Je vous recommande d'utiliser le format ANSI SQL-92 plutôt que ANSI SQL-89. Essayez celui-ci:

SELECT a.* , b.* 
FROM comments a 
     INNER JOIN users b 
      ON a.user_id = b.user_id 
WHERE item_id = '{$item_id}' AND 
     review > '' 
ORDER BY good DESC, rate_id ASC 

Good Definition of JOINs
Read something here: INNER JOIN (ANSI SQL-89 vs ANSI SQL-92)

Informations complémentaires:

Puisque vous utilisez PHP pour cela, je le recommande aussi d'utiliser PHP PDO Technology

un exemple pour cela est:

<?php 


$stmt = $dbh->prepare("SELECT a.* , b.* 
    FROM comments a 
      INNER JOIN users b 
       ON a.user_id = b.user_id 
    WHERE item_id = ? AND 
      review > ? 
    ORDER BY good DESC, rate_id ASC"); 

$stmt->bindParam(1, $item_id); 
$stmt->bindParam(2, ''); 
$stmt->execute(); 

?> 
+0

Merci! Travaillé super .. regardera les liens ... – KickingLettuce

+0

vous êtes les bienvenus :) –

0

essayez et pour l'apprentissage voir rejoint here

SELECT c.* , u.* 
FROM comments c 
    INNER JOIN users u 
     ON c.user_id = u.user_id 
WHERE item_id = '{$item_id}' 
     AND review > '' 
ORDER BY good DESC, rate_id ASC;