Как связать две таблицы взяв только первое значение?

Рейтинг: 0Ответов: 0Опубликовано: 17.01.2023

Как вывести все значения из таблицы exchanges и при этом взять только одно связующее активное поле из таблицы accounts по полю exchange_id ?

Результат должен быть из 5 полей.

2 таблицы:

exchanges
id  name   class  active
1   test   Test   1
2   test2  Test2  1
3   test3  Test3  1
4   test4  Test4  1
5   test5  Test5  1


accounts
id  exchange_id name    active
1   1           Sergey  1
2   1           Oleg    1
3   2           Sergey  1
4   3           Sergey  1
5   4           Sergey  1
6   5           Sergey  1

SQL запрос:

    "SELECT a.id, e.name, e.class, a.exchange_id, a.id as account_id, a.name as account_name 
FROM exchanges as e 
LEFT JOIN accounts as a ON (a.exchange_id = e.id) 
WHERE a.active = 1 AND e.active = 1"

Результат:

array(6) {
  [0]=>
  array(7) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(7) "test"
    ["class"]=>
    string(7) "Test"
    ["exchange_id"]=>
    string(1) "1"
    ["account_id"]=>
    string(1) "1"
    ["account_name"]=>
    string(1) "Sergey"
  }
  [1]=>
  array(7) {
    ["id"]=>
    string(1) "2"
    ["name"]=>
    string(5) "test2"
    ["class"]=>
    string(5) "Test2"
    ["exchange_id"]=>
    string(1) "2"
    ["account_id"]=>
    string(1) "3"
    ["account_name"]=>
    string(1) "Sergey"
  }
  [2]=>
  array(7) {
    ["id"]=>
    string(1) "3"
    ["name"]=>
    string(6) "test3"
    ["class"]=>
    string(6) "Test3"
    ["exchange_id"]=>
    string(1) "3"
    ["account_id"]=>
    string(1) "4"
    ["account_name"]=>
    string(1) "Sergey"
  }
  [3]=>
  array(7) {
    ["id"]=>
    string(1) "4"
    ["name"]=>
    string(5) "test4"
    ["class"]=>
    string(5) "Test4"
    ["exchange_id"]=>
    string(1) "4"
    ["account_id"]=>
    string(1) "5"
    ["account_name"]=>
    string(1) "Sergey"
  }
  [4]=>
  array(7) {
    ["id"]=>
    string(1) "5"
    ["name"]=>
    string(9) "test5"
    ["class"]=>
    string(9) "Test5"
    ["exchange_id"]=>
    string(1) "5"
    ["account_id"]=>
    string(1) "6"
    ["account_name"]=>
    string(1) "Sergey"
  }
  [5]=>
  array(7) {
    ["id"]=>
    string(1) "6"
    ["name"]=>
    string(7) "test"
    ["class"]=>
    string(7) "Test"
    ["exchange_id"]=>
    string(1) "1"
    ["account_id"]=>
    string(1) "2"
    ["account_name"]=>
    string(1) "Oleg"
  }
}

Здесь одно лишнее, это:

[5]=>
  array(7) {
    ["id"]=>
    string(1) "6"
    ["name"]=>
    string(7) "test"
    ["class"]=>
    string(7) "Test"
    ["exchange_id"]=>
    string(1) "1"
    ["account_id"]=>
    string(1) "2"
    ["account_name"]=>
    string(1) "Oleg"
  }

Ответы

Ответов пока нет.