2017-01-28 5 views
0

У меня есть две таблицы.получить результаты двух разных таблиц mysql

Таблица акций

fecha  | tarifa 

2017-01-06 500 
2017-01-07 500 
2017-01-08 500 

Таблица повышений

fecha  | percent 

2017-01-07 0.10 
2017-01-08 0.10 
2017-01-07 0.15 
2017-01-08 0.15 

и мне нужно получить в то время как MySQL запрос следующим образом:

fecha  | tarifa | percent 

2017-01-06 500  0 
2017-01-07 500  0.10 
2017-01-08 500  0.10 
2017-01-06 500  0 
2017-01-07 500  0.15 
2017-01-08 500  0.15 

Спасибо !!!

Update

мне нужно, что создать этот массив с результатом запроса.

Array 
(
    [1] => Array 
     (
      [0] => Array 
       (
        [fecha] => 2017-01-06 
        [tstandard]=>500 
        [porcentaje] => 0.00 
       ) 

      [1] => Array 
       (
        [fecha] => 2017-01-07 
        [tstandard]=>500 
        [porcentaje] => 0.10 
       ) 

      [2] => Array 
       (
        [fecha] => 2017-01-08 
        [tstandard]=>500 
        [porcentaje] => 0.10 
       ) 
     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [fecha] => 2017-01-06 
        [tstandard]=>500 
        [porcentaje] => 0.00 
       ) 

      [1] => Array 
       (
        [fecha] => 2017-01-07 
        [tstandard]=>500 
        [porcentaje] => 0.15 
       ) 

      [2] => Array 
       (
        [fecha] => 2017-01-08 
        [tstandard]=>500 
        [porcentaje] => 0.15 

       ) 
     ) 
) 

Я сделал массив, но без tstandard каждого дня

+0

Используйте 'ЛЕВЫЙ JOIN' соединить две таблицы, когда один из них не может содержать строки, соответствующие друг другу. – Barmar

+0

SO не является бесплатной услугой кодирования. Вы должны попытаться решить проблему самостоятельно. Если вы не можете заставить его работать, напишите, что вы попробовали, и мы поможем вам исправить это. – Barmar

ответ

1

Вы можете использовать left outer join, чтобы получить желаемый результат, например .:

SELECT s.fecha, s.tarifa, IFNULL(p.percent, 0) 
FROM stock s LEFT JOIN promotions p ON s.fecha = p.fecha; 

Вот SQL Fiddle.

Update

Если вы хотите ограничить выход с датами, вы можете использовать приведенный ниже запрос:

SELECT s.fecha, s.tarifa, IFNULL(p.percent, 0) 
FROM stock s LEFT JOIN promotions p ON s.fecha = p.fecha 
WHERE s.fecha BETWEEN $checkin AND $checkout; 
+0

есть действительно хорошее решение, но как я могу сделать, если гость выбирает даты. таблица стола представляет собой таблицу, которая содержит каждый день в году. есть система бронирования отелей. поощрение стола содержит только дни скидки. когда я пытаюсь использовать левое внешнее соединение и использую select .... где fecha> = $ checkin и fecha <$ checkout, в результате столбец fecha неоднозначен –

+0

ohhh, ты мой бог. Jeje. ¿Могу ли я задать последний вопрос ?. Как я могу сделать, чтобы получить один массив для продвижения по службе, и каждый из них включает в себя все дни, с которыми проводятся консультации. например, один массив, который содержит три дня (6, 7, 8, - день 6, 0,00% и другие дни 0,10%), а другой массив также содержит три дня (6,7,8 - день 6 , 0,00%, а в другие дни - 0,15%). Должен ли я сделать это с помощью php? –

+0

В таблице las моего запроса есть результат, который я хочу получить. –

Смежные вопросы