2017-04-15 2 views
0

다른 테이블에 같은 이름의 열이 두 개 있습니다. 보기의 한 열에 그들을 결합하고 싶습니다.동일한 열 선택 2 테이블에서보기의 1 열로

여기 내 첫 번째 테이블 stocks :

+----------+------------+------------+---------+----------------+--------+ 
| stock_id | stock_cost | stock_left | item_id | purchasedtl_id | trx_id | 
+----------+------------+------------+---------+----------------+--------+ 
|  1 |  1000 |   0 |  1 |    1 |  1 | 
|  2 |  1000 |   5 |  1 |    2 |  2 | 
|  3 |  1000 |   1 |  1 |    3 |  4 | 
+----------+------------+------------+---------+----------------+--------+ 

두 번째 테이블 stocks_out

+-------------+----------------+--------------+---------+----------+------------+--------+ 
| stockout_id | stockout_price | stockout_qty | item_id | stock_id | saledtl_id | trx_id | 
+-------------+----------------+--------------+---------+----------+------------+--------+ 
|   1 |   2000 |   1 |  1 |  1 |   1 |  3 | 
+-------------+----------------+--------------+---------+----------+------------+--------+ 

그리고이 trx_id, trx_no, trx_closetime, trx_type stock_id, stock_cost, stockout_id, stock_out_cost, stockout_price, item_id

item_id처럼되고 그들과 합류 할 것은 내가 가입 할 분야입니다 한 칸에.

select `transactions`.`trx_id` AS `trx_id`,`transactions`.`trx_no` AS `trx_no`,`transactions`.`trx_closetime` AS `trx_closetime`,`transactions`.`trx_type` AS `trx_type`,`stocks`.`stock_id` AS `stock_id`,`stocks`.`stock_cost` AS `stock_cost`,`stock_out`.`stockout_id` AS `stockout_id`,`stock_out`.`stockout_price` AS `stockout_price` from ((`transactions` left join `stocks` on(`stocks`.`trx_id` = `transactions`.`trx_id`)) left join `stock_out` on(`stock_out`.`trx_id` = `transactions`.`trx_id`)) order by `transactions`.`trx_closetime`; 

그리고 현재의 결과 :

현재 쿼리는

+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+ 
| trx_id | trx_no    | trx_closetime  | trx_type | stock_id | stock_cost | stockout_id | stockout_price | 
+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+ 
|  1 | 02002-02-170415-001 | 2017-04-15 19:40:03 | 2  |  1 |  1000 |  NULL |   NULL | 
|  2 | 02002-02-170415-002 | 2017-04-15 19:40:13 | 2  |  2 |  1000 |  NULL |   NULL | 
|  3 | 02002-01-170415-001 | 2017-04-15 19:40:57 | 1  |  NULL |  NULL |   1 |   2000 | 
|  4 | 02002-02-170415-003 | 2017-04-15 19:41:14 | 2  |  3 |  1000 |  NULL |   NULL | 
+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+ 
+0

샘플 데이터와 쿼리에서 아무것도 : 난 그냥 그래서 쿼리가

select 'transactions'.'trx_id' AS 'trx_id','transactions'.'trx_no' AS 'trx_no','transactions'.'trx_closetime' AS 'trx_closetime','transactions'.'trx_type' AS 'trx_type','stocks'.'stock_id' AS 'stock_id','stocks'.'stock_cost' AS 'stock_cost','stock_out'.'stockout_id' AS 'stockout_id','stock_out'.'stockout_price' AS 'stockout_price', COALESCE('stocks'.'item_id', 'stocks_out'.'item_id') AS 'item_id from (('transactions' left join 'stocks' on('stocks'.'trx_id' = 'transactions'.'trx_id')) left join 'stock_out' on('stock_out'.'trx_id' = 'transactions'.'trx_id')) order by 'transactions'.'trx_closetime'; 

그리고 결과처럼 될 것입니다 열

COALESCE('stocks'.'item_id', 'stocks_out'.'item_id') AS 'item_id' 

로 다음 쿼리를 추가해야 공유지. 설명, 데이터 및 쿼리가 일치하도록이 문구를 사용해야합니다. 예를 들어, 샘플 결과 집합에 'item_id'가 없습니다. –

+0

답변을 찾았습니다. 어쨌든 @ GordonLinoff! 사실 나는 하나의 트랜잭션이 2 개의 테이블에있을 수 없다는 것을 잊어 버렸다. – rh123

답변

0

그것을 발견들.

+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+---------+ 
| trx_id | trx_no    | trx_closetime  | trx_type | stock_id | stock_cost | stockout_id | stockout_price | item_id | 
+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+---------+ 
|  1 | 02002-02-170415-001 | 2017-04-15 19:40:03 | 2  |  1 |  1000 |  NULL |   NULL |  1 | 
|  2 | 02002-02-170415-002 | 2017-04-15 19:40:13 | 2  |  2 |  1000 |  NULL |   NULL |  1 | 
|  3 | 02002-01-170415-001 | 2017-04-15 19:40:57 | 1  |  NULL |  NULL |   1 |   2000 |  1 | 
|  4 | 02002-02-170415-003 | 2017-04-15 19:41:14 | 2  |  3 |  1000 |  NULL |   NULL |  1 | 
+--------+---------------------+---------------------+----------+----------+------------+-------------+----------------+---------+ 
관련 문제