0

我试图掌握在 SQL 中加入表的主题。我知道有多个连接,但不确定在这里实现哪个:

这是我在 php 中的 SQL 行:

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

这就是我想要加入的:另一个名为“users”的表。*“users”和“comments”都有一个名为“user_id”的列要加入。*我想将这两者关联起来以在 users 表中找到完整的“用户名”。

我知道 SELECT不是最佳实践;但是为了这个演示,你能把它包括在这里吗?我也知道需要注意的 MySQL 注入可能性。**

4

2 回答 2

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

JOIN 的良好定义 在
此处阅读:INNER JOIN (ANSI SQL-89 vs 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();

?>
于 2012-08-09T06:23:48.080 回答
0

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

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;
于 2012-08-09T06:22:29.033 回答