Mysql连接两个表并使用If条件获取结果

时间:2020-04-19 17:32:57

标签: mysql json left-join

在我的应用程序中,用户可以选择多个银行。用户可以选择拥有信用卡的多家银行。银行列表在银行表中。用户选择的银行将插入到mobile_user_bank表中。在mobile_user_bank表格中,列为id,mobile_user_id,bank_id。

两个表

  1. 银行-保存银行列表

  2. mobile_user_bank-保存用户选择的银行。

我想获得一个json对象,该对象提供一个带有is_selected变量的所有银行列表。

  `{
        "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;

1 个答案:

答案 0 :(得分:1)

使用if条件,查询几乎完成-

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 ;

https://paiza.io/projects/G7GOjsR03mqygV3fkeL6CA?language=mysql enter image description here

相关问题