我正在尝试掌握在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;