2013-08-05 204 views
0

我一直在努力寻找解决方案,以下情况。 我有4个表mysql多表选择条件

Table 1 
product_id|product_name 

Table 2 
Review_id|listing_name|rating|content|product_id|user_id 

Table3 
user_id|user_name| 

Table 4 
user_id|rank| 

PRODUCT_ID整个表1和表2 USER_ID具有相同的值在整个表2,3,4

我需要帮助得到以下语句转换成一个阵列相同的值

SELECT review_id, rating, content, user_name, rank FROM T2, T3, T4 WHERE    product_id=$pid and WHERE T3.user_id = T2.user_id 

我的阵列应该是这样的:

$arr[review_id] = $row[review_id] 
$arr[rating] = $row[rating] 
$arr[content] = $row[content] 
$arr[user_name] = $row[user_name] 
$arr[rank] = $row[rank] 

所有帮助将大大appriciated

回答

1
SELECT T2.review_id, T2.rating, T2.content, T3.user_name, T4.tank 
    FROM T2 
    INNER JOIN T3 
     ON T2.user_id = T3.user_id 
    INNER JOIN T4 
     ON T2.user_id = T4.user_id 
    WHERE T2.product_id = $pid 
+0

PS:我希望你的表没有实际上被称为T1,T2等:) 您可以使用表的别名在查询中如果表名称很长,但理想你的表名应该描述表中包含的内容。 –

+0

到目前为止工作很好。我的表r不是以t1234命名的 – user2510952