2017-08-02 61 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」; **。現在我得到一個顯示的值,但不是錯誤的值。我會檢查我的查詢 –

相關問題