簡體   English   中英

如何在MySQL中用連接表連接兩列

[英]How to concatenate two columns with joined table in mysql

我有兩個表issue_detailspayees ,如下所示,帶有值:

表格: issue_details

+----------+------------+----------+----------+
| check_no | issue_date | payee_id | lddap_no | 
+----------+------------+----------+----------+
|        0 | 2015-01-01 |          | 11101-15 | 
|        1 | 2015-01-24 |          | 11101-15 |
|    34561 | 2015-01-24 | 10       |          |
|    34562 | 2015-01-24 | 13       |          | 
+----------+------------+----------+----------+

表: 收款人

+----------+--------------------+
| payee_id | payee_name         | 
+----------+--------------------+
| 1        | John Smith         | 
| 10       | Chen Lou           | 
| 11       | Mark Dello         |
| 12       | ANTRECCO           | 
| 13       | Shay Ridz          | 
+----------+--------------------+

我執行此查詢以連接兩個表,以在我的issue_details表中描述收款人姓名。

SELECT      
    issue_details.issue_date AS date,
    issue_details.check_no AS check_no,
    payees.payee_name AS payee 
FROM
    issue_details
INNER JOIN 
    payees ON issue_details.payee_id = payees.payee_id

結果

+----------+------------+----------+
| check_no | issue_date | payee    | 
+----------+------------+----------+
|    34561 | 2015-01-24 | Chen Lou |       
|    34562 | 2015-01-24 | Shay Ridz|       
+----------+------------+----------+

如果我這樣做:

SELECT      
    issue_details.issue_date AS date,
    issue_details.check_no AS check_no,
    CONCAT(payees.payee_name, '', lddap_no) AS payee 
FROM
    issue_details
INNER JOIN 
    payees ON issue_details.payee_id = payees.payee_id

結果仍然與上面相同。 它不將payee_name (從表payees連接)的兩列和payee_name連接lddap_no

這是我想發生的事情:

+----------+------------+----------+
| check_no | issue_date | payee    |  
+----------+------------+----------+
|        0 | 2015-01-01 | 11101-15 |      
|        1 | 2015-01-24 | 11101-15 |     
|    34561 | 2015-01-24 | Chen Lou |
|    34562 | 2015-01-24 | Shay Ridz|     
+----------+------------+----------+

請在這里幫助我的查詢。 將不勝感激。 謝謝

SELECT      id.issue_date AS date,
            id.check_no AS check_no,
            COALESCE( p.payee_name, id.lddap_no ) AS payee 
FROM        issue_details id
            LEFT  JOIN payees p ON
            id.payee_id = p.payee_id

請參見SQLFiddle演示

只需將INNER JOIN更改為LEFT JOIN

SELECT      issue_details.issue_date AS date,
            issue_details.check_no AS check_no,
            payees.payee_name AS payee 
FROM
            issue_details
            LEFT JOIN payees ON
            issue_details.payee_id = payees.payee_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM