[英]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.