簡體   English   中英

將多個表連接或連接到 CodeIgniter 3 中的單個表,如果有空單元格,則不會省略行

[英]Concatenate or join multiple tables to a single table in CodeIgniter 3 without omitting rows if there is an empty cell

假設我有 4 個不同的表 'user'、'favorite_book'、'books'、'user_image'。 下表中的數據,

用戶:

|user_id |name|contact |dateCreated|
|--------|----_|-------|-----------|
|1       |Ani  | 9999  | 1232142   |
|2       |Aslam| 8888  | 1234563   |
|3       |Jhon | 7777  |2425325    |
|4       |Keras| 6666  |535345     |
|5       |Sudi | 5555  |453454     |

最愛的書本:

|user_id|book_id|dateCreated|
|-------|-------|-----------|
|1      | xys   |           |
|3      | sdf   |           |
|4      | 7rlm  |           |
|5      | 7rlm  |           |

注意:這里的 'user_id' 2 沒有任何 favorite_book。

圖書

|book_id|book_name|book_author|dateCreated|
|-------|---------|-----------|-----------|
|xys    |book_1   | auth_1    | 
|7rlm   |book_3   | auth_3    |
|sdf    |book_9   | auth_9    |
|rtyu   | book_1  | auth_1    |

用戶圖像

|user_id| img     |dateCreated|
|--     |---------|-----------|
|1      |Ani.png  |           |
|2      |Aslam.png|           |
|3      |NULL     |           |
|4      |NULL     |           |
|5      |Sudi.png |           |

注意:少數用戶沒有提供標記為 NULL 的 user_image

預期的解決方案:我需要創建一個表格,將所有表格組合在一起,以便一目了然地獲取用戶的詳細信息。 預期的解決方案如下。

|user_id|name |contact|img      |book_name|dateCreated|
|-------|-----|-------|---------|---------|-----------|
|1      |Ani  | 9999  | Ani.png |book_1   |1232142    |
|2      |Aslam| 8888  |Aslam.png||1234563 |           |
|3      |Jhon |  7777 |         |book_9   |2425325    |
|4      |Keras| 6666  |         |book_3   |535345     |
|5      |Sudi | 5555  |Sudi.png |book_3   |4534543    |

注意:dateCreated 來自“用戶”表。

我通過在 $this->db->join() 的幫助下組合所有表來創建表,但是如果存在空單元格或 null 單元格,它將省略行。 我想獲得一張包含所有可用信息的表格。

那將是這樣的:

SELECT
    u.user_id
    , name
    , contact
    , img
    , book_name
    , u.dateCreated
FROM
    users                   u
    JOIN user_image         ui
        ON u.user_id = ui.user_id
    LEFT JOIN favorite_book fb
        ON u.user_id = fb.user_id
    LEFT JOIN books         b
        ON bf.book_id = b.book_id;
  on bf.book_id = b.book_id

暫無
暫無

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

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