Mysql Соедините две таблицы и получите результаты с условием If - PullRequest
0 голосов
/ 19 апреля 2020

В моем приложении пользователь может выбрать несколько банков. Пользователь может выбрать несколько банков, которые у него есть кредитная карта. Список банков находится в таблице банков. выбранные пользователем банки вставляются в таблицу 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 Ответ

1 голос
/ 19 апреля 2020

Используйте условие, если ваш запрос почти завершен -

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

...