我试图掌握在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注入的可能性。 **
答案 0 :(得分: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();
?>
答案 1 :(得分: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;