2
我有3個表,LEFT JOIN在笨
itemmaster
|--------|----------|
| id | name |
|--------|----------|
| 1 | Pizza |
|--------|----------|
| 2 | Burger |
|--------|----------|
| 3 | Pepsi |
---------------------
order
|--------|----------|
|orderid | date |
|--------|----------|
| 1 | 1-1-11 |
|--------|----------|
| 2 | 2-1-11 |
|--------|----------|
| 3 | 3-1-11 |
---------------------
orderdetails
|--------|-------------|---------|---------|
| id | orderid |itemid |quantity |
|--------|-------------|---------|---------|
| 1 | 1 | 1 | 10 |
|--------|-------------|---------|---------|
| 2 | 1 | 2 | 20 |
|--------|-------------|---------|---------|
| 3 | 2 | 1 | 10 |
-------------------------------------------
我想加入這3個表來獲取放置在特定日期的訂單項的數量。 我已經試過是
$this->db->from('itemmaster');
$this->db->join('orderdetails', 'orderdetails.itemid= itemmaster.id','left');
$this->db->join('order', 'order.orderid= orderdetails.orderid');
$this->db->where('order.date',"1-1-11");
$query = $this->db->get();
我得到的結果,
Pizza------ 10
Burger------10
我要的是,
Pizza-------10
Burger------20
Pepsi-------0
儘量讓你的第二個加入左連接。直接在SQL中,id嘗試使用coalesce(用某種東西替換空值)。例如coalesce(number of Burger,0)。如果伯爵數爲空,那麼youd在查詢結果中看到0 – Alex 2014-10-07 16:00:28
@Alex:感謝您的幫助。我已經嘗試了第二次加入,但我仍然只得到1項。 – 2014-10-07 16:13:43
如果我們一步一步做一次一次加入,你總會得到1個結果嗎? – Alex 2014-10-07 16:18:11