SQL - 连接两个表


SQL - Joining two tables

我正在尝试掌握在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注入可能性。**

我建议您使用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

联接
的良好定义在这里阅读一些内容: 内部连接 (ANSI SQL-89 与 ANSI SQL-92)

附加信息:

由于您为此使用 PHP,我还建议使用 PHP PDO 技术

这方面的一个例子是:

<?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();
?>

试试这个,学习加入见这里

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;