2012-08-09 120 views
0

我想了解SQL中连接表的主题。我知道有多个连接,但不知道要在这里实现:SQL - 连接两个表

这里是在PHP我的SQL行:

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

这是我想加入什么:所谓的“用户”的另一个表。 *“用户”和“评论”都有一个名为“user_id”的列加入。*我想将这两个关联起来,以在用户表中找到完整的“用户名”。

我知道SELECT不是最佳做法;但为了这个演示,你可以在这里包括吗?我也知道MySQL注入的可能性。 **

回答

2

我建议你使用ANSI SQL-92格式,而不是ANSI SQL-89。试试这个:

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)

附加信息:

由于您使用PHP对于这一点,我也会建议使用PHP PDO Technology

一个例子是:

<?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

谢谢!工作很好..会看链接... – KickingLettuce 2012-08-09 07:40:29

+0

欢迎:) – 2012-08-09 07:44:13

0

试试这个和学习加入看到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;