![](/img/trans.png)
[英]Having trouble JOINing 3 MySQL tables, retrieving data from two (CodeIgniter)
[英]In MySQL having issues while fetching data from two tables via performing joining on JSON column
我有兩個表用戶和用戶組,它們之間沒有硬性關系。 users表包含一個usergroup列,其中以JSON格式保存了usergroups表中的多個usergroup_id,而usergroups表則包含id和usergroup_title列。 現在,要求是通過一個查詢獲取所有用戶的列表,該查詢應包含用戶數據(來自與JSON值相對應的usergroups表中的usergroup_title)。
我曾嘗試使用以下查詢,但收到錯誤消息JSON_CONTAINS不存在。 代碼如下:
SELECT
u.user_id,
g.id,
g.usergroup_title
FROM user u
LEFT JOIN usergroups g on JSON_CONTAINS(u.usergroup_id, CAST(g.id as JSON), '$')
我收到一個錯誤JSON_CONTAINS函數沒有。 我想要以下格式的數據:
array("user_id" => 1, "usergroup" => ["admin", "customer", "seller"])
既然我們知道這是處理多對一關系的一種可怕方法,那就讓我們繼續吧:
SELECT
u.user_id,
g.id,
g.usergroup_title
FROM user u
LEFT JOIN usergroups g on u.usergroup_id LIKE CONCAT('%"',g.id,'"%')
如果您的ID在JSON中被視為字符串,那么它應該可以解決問題,否則您需要用'%:'
和',%'
等替換'%"'
和'"%'
部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.