Как связать две таблицы взяв только первое значение?
Как вывести все значения из таблицы 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"
}
Источник: Stack Overflow на русском