2017-08-02 34 views
0

我的问题是: 我想显示一个包含“Customer”列的表。 这是一个收集“度量”的表格。问题是,有两种“措施”。它们也在数据库表中与“类型”(0和1)列分离。是否可以连接一张桌子两次?

而且每个“办法”属于“客户”,但对于每一个“度量”类型有不同的方式来获得“客户”姓名:

这是代码:

$select = "blablabla..., c.name as customer"; 
$this->db->select($select); 
$this->db->from("it_measure m"); 

它继续对 “办法” 有0类型:

$this->db->join("it_ma ma", "m.id = ma.measure", "LEFT OUTER"); 
$this->db->join("it_a a", "ma.a = a.id", "LEFT OUTER"); 
$this->db->join("it_i i", "a.i = i.id", "LEFT OUTER"); 
$this->db->join("it_customer c", "i.customer = c.id", "LEFT OUTER"); 

对于 “办法” 1型:

$this->db->join("it_mf mf", "m.id = mf.mid", "LEFT OUTER"); 
$this->db->join("it_f f", "mf.fid= f.id", "LEFT OUTER"); 
$this->db->join("it_w w", "f.w = w.id", "LEFT OUTER"); 
$this->db->join("it_ga ga", "w.a = ga.id", "LEFT OUTER"); 
$this->db->join("it_customer c", "ga.customer = c.id", "LEFT OUTER"); 

因此,您看到我有不同的连接来获取这两种类型的客户名称。 这两个例子中的最后一个连接是重要的。我想加入同一张桌子(table_customer)。 我如何才能实现它将此查询合并到一个现场客户中。 我也试着用if查询:如果输入0 ..否则输入1 ..但它不起作用。

如果你能帮助我,我会很高兴! 如果有什么不清楚的地方,请询问。 谢谢!

+0

可能重复[MySQL:如何多次连接同一个表?](https://stackoverflow.com/questions/12561733/mysql-how-do-i-join-same-table-multiple-次) – JeffUK

回答

5

当然,只要给每个表一个不同的别名。

+0

但至少我需要两个结果在$ select =“blablabla ...,** c.name作为客户”; **线? –

+0

是的,例如,如果您想从同一个表中放置名称,只需在它之前添加它在FROM语句中给出的自己的别名即可。例如1.name,2.name – Phil

+0

谢谢。我只是改为select =“blablabla ...,** c1.name as customer,c2.name as customer”; **。现在我得到一个显示的值,但不是错误的值。我会检查我的查询 –

相关问题