加入两个表的问题

时间:2014-02-10 11:21:02

标签: php mysql

您好我有两个表,一个叫做project_table,另一个叫做投资表。

project_table:

project_id               
project_name  
project_location         
project_phase        
project_capital      
project_total 
project_notes 
project_file 

投资表:

id  
project_id 
investor_id     
investment 

用户表:

user_id
user_name
user_email
user_pass
user_role
user_phone 

我将用户的投资存储在表格(投资)中,并使用project_id将该表格链接到项目表

我需要什么: 显示来自用户的投资项目数据。意味着如果用户登录管理员,他们只需要看到他们投资的项目,就不需要显示所有项目。用户可以选择投资多个项目。 所以基本上如果詹姆斯登录管理员他只需要看看有詹姆斯投资的项目。

我的功能是:

public function list_all_projects_by_userid ($uid,$investor){

    $investors = DB::fetch('SELECT * FROM  project_table JOIN investment on project_table.project_id = investment.project_id;  ORDER BY project_id DESC');
   return $investors;   


        } 

但它不起作用,请帮助我。我正在使用具有fetch方法的Extended PDO类。

5 个答案:

答案 0 :(得分:1)

看看这个!

SELECT * FROM  project_table t JOIN investment i on t.project_id = i.project_id where t.project_name='john' ORDER BY project_id DESC;

您在ORDER BY之前放置了“;”,这是错误的。我想上面的查询可以解决问题。

你必须通过

  

PROJECT_NAME = '约翰'

根据您的要求。

为此你需要在usertable和project_table之间建立连接。

答案 1 :(得分:0)

您的查询中存在语法错误。我试试这个:

SELECT * FROM  project_table JOIN investment on project_table.project_id = investment.project_id  ORDER BY project_id DESC;

如果您的加入条件不符合要求,请详细说明您的功能。

答案 2 :(得分:0)

你需要把';'在整个查询背后:

SELECT *
FROM  project_table JOIN investment
   on project_table.project_id = investment.project_id
ORDER BY project_id DESC;

答案 3 :(得分:0)

因为invester是一个用户,所以函数不需要两个参数,所以我保持简单

public function list_all_projects_by_userid ($uid){
$sql="select * from investment_table Inner Join project_table
on project_table.project_id=investment_table.project_id
where investment_table='".$uid."' ORDER BY investment_table.project_id DESC";
$investors = DB::fetch($sql);
return $investors; 
}

答案 4 :(得分:0)

在你的功能中,你在排序之前放了半个冒号。

project_id存在于两个表中。所以你应该提一下你需要在哪个表中设置project_id的顺序。

公共职能list_all_projects_by_userid($ uid,$ investor){

$investors = DB::fetch('select * from investment_table, project_table where project_table.project_id=investment_table.project_id  ORDER BY investment_table.project_id DESC');

返回$投资者;         }