Mysql使用If条件连接两个表并获得结果
在我的应用程序中,用户可以选择多个银行。用户可以选择多家拥有信用卡的银行。银行名单在银行表中。用户选择的银行将插入移动用户银行表。在mobile\u user\u bank表中,列为id、mobile\u user\u id、bank\u id 两张桌子Mysql使用If条件连接两个表并获得结果,mysql,json,left-join,Mysql,Json,Left Join,在我的应用程序中,用户可以选择多个银行。用户可以选择多家拥有信用卡的银行。银行名单在银行表中。用户选择的银行将插入移动用户银行表。在mobile\u user\u bank表中,列为id、mobile\u user\u id、bank\u id 两张桌子 银行-保存银行列表 移动用户银行-保存用户选择的银行 我想得到一个json对象,该对象给出一个所有银行列表,其中包含一个变量 `{ "id": 2, "bank_name": "HNB", "
`{
"id": 2,
"bank_name": "HNB",
"image": "bank_hnb.png",
"is_selected": 1
},
{
"id": 3,
"bank_name": "BOC\n",
"image": "bank_boc.png",
"is_selected": 0
},
{
"id": 4,
"bank_name": "People's Bank",
"image": "people.png",
"is_selected": 1
}`
我尝试了这个查询,但结果是错误的,没有给出所有的银行,只有用户选择的银行在重复
SELECT ub.id, ub.name, ub.image FROM banks ub left join mobile_user_banks mub on ub.id = mub.bank_id where mub.mobile_user_id =25;
如果条件为,则使用此选项,您的查询几乎已完成-
SELECT ub.id, ub.name, ub.image, if (mub.bank_id is null, 0 , 1) as is_selected
FROM banks ub
left join mobile_user_banks mub on ub.id = mub.bank_id
and mub.mobile_user_id = 25 ;
不能给出左表结果。只有我得到了内部连接结果,这意味着如果我添加为左连接,但结果只有用户添加了银行。在我的表中有20个银行,用户只选择了4个,对于上面的查询,它只输出4个银行。@user2552863我已经更新了我的答案,可能是您正在使用带where的用户筛选器,而您必须使用带on的用户筛选器。更新答案见。