Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите составить запрос / 3 сообщений из 3, страница 1 из 1
21.12.2013, 02:13:51
    #38508609
imediasun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
Выбрать все данные из таблицы 'bills' соединив их с данными из таблицы 'sales' по полю 'id_bill' если в таблице 'bills' поле 'id_owner' равен 1

таблица bills



id_bill=>1,adress=>street,id_owner=>1;



таблица sales



id=>1,id_bill=>1,start=>2013-09,price=>2000,end=>2013-12;
id=>2,id_bill=>1,start=>2014-01,price=>1000,end=>2014-03




Чтобы в итоге получить такой массив



[id_bill]=>1,[adress]=>street,array[0]=>([id]=>1,[start]=>2013-09,[price]=>2000,[end]=>2013-12),array[1]=>([id]=>2,[start]=>2014-01,[price]=>1000,[end]=>2014-03)



Помогите пожалуйста составить такой запрос
...
Рейтинг: 0 / 0
21.12.2013, 08:16:04
    #38508659
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
imediasunЧтобы в итоге получить такой массивмускль не возвращает массивов в принципе
однако если говорить в понятных вам терминах пхп, то мускль может возвращать только такие массивы, в которых сами элементы являются строками/числами/датами, но никак не вложенными массивами.
...
Рейтинг: 0 / 0
21.12.2013, 14:01:26
    #38508776
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
imediasunВыбрать все данные из таблицы 'bills' соединив их с данными из таблицы 'sales' по полю 'id_bill' если в таблице 'bills' поле 'id_owner' равен 1

таблица bills



id_bill=>1,adress=>street,id_owner=>1;



таблица sales



id=>1,id_bill=>1,start=>2013-09,price=>2000,end=>2013-12;
id=>2,id_bill=>1,start=>2014-01,price=>1000,end=>2014-03




Чтобы в итоге получить такой массив



[id_bill]=>1,[adress]=>street,array[0]=>([id]=>1,[start]=>2013-09,[price]=>2000,[end]=>2013-12),array[1]=>([id]=>2,[start]=>2014-01,[price]=>1000,[end]=>2014-03)



Помогите пожалуйста составить такой запрос

Код: plsql
1.
SELECT t1.id_bill, t1.address, t2.id, t2.start, t2.price, t2.end FROM bills as t1 LEFT JOIN sales as t2 ON t2.id_bill=t1.id_bill WHERE t1.id_owner=1



Как уже сказали, mysql не умеет возвращать массивы, потому на клиенте то, что получилось, надо будет представить в виде массива самому.
Итак, из sql это выйдет в таком виде:
Код: php
1.
array('id_bill'=>1, 'address'=>'blabla', 'id'=>1, 'start'=>'...', 'end'=>'...')


Я так понимаю по представлению Вами массива, Вы на php пишите? Тогда вот пример как такой массив переделать в то, что Вам нужно:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$result=array();
while($row = mysql_fetch_array($res)){
  if($result[$row['id_bill']]){
    $result[$row['id_bill']]['array'][] = (array('id'=>$row['id'], 'start'=>$row['start'], 'end'=>$row['end']);
  }else{
    $result[$row['id_bill']] = array(
      'id_bill'=>$row['id_bill'], 
      'address'=>$row['address'],
      'array'=>$row['id']!=null ? array(array('id'=>$row['id'], 'start'=>$row['start'], 'end'=>$row['end'])) : array()
    );
  }
}



Ну вот, если нигде не ошибся (возможности проверить нету), то должно заработать...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите составить запрос / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]