2012-08-09 137 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;