2016-11-27 2 views
0

У меня есть 2 таблицы с данными. «ключевые слова» и «данные».MySQL: Как получить значения из нескольких столбцов в одном столбце

key_id (P) 
key_word 
key_prod (I) 
kay_country 
key_is_wr 

и

id (P) 
dat_id (I) 
dat_date 
dat_is_weekly 

Для каждого ключевого слова есть несколько различных строк, связанных в таблице данных - с разными или же даты в dat_date. Я хочу получить все варианты дат, существующих в этой таблице, только один раз, чтобы я мог отображать их все в массиве в моем PHP-коде.

Это запрос im, который в настоящее время используется, - он получает список тех же дат из определенного значения «key_app», которое мне нужно. Но я хочу получить массив дат, существующих для данного ключевого ключа.

SELECT * FROM `keywords` 
    JOIN `data` 
    ON `keywords`.`key_id` = `data`.`dat_id` 
    WHERE `keywords`.`key_app`= 10 

Я просто не выяснить еще, как: 1. Получить только dat_date раздел (я думаю, что мне нужно datadat_date вместо «*» в моем запросе 2. Как получить.. только разные даты, которые существуют для каждого key_prod.

Я пытался использовать все виды ORDER BY и MAX (ID) и ничего, кажется, работает хорошо с точки зрения sytaxes

SELECT * FROM `keywords` 
    JOIN ( 
      SELECT MAX(id) AS id 
      FROM `data` 
      GROUP BY `data`.`dat_date` 
     ) `keywords` 
    ON `keywords`.`key_prod`=10 

Я рою его на некоторое время, но не правильного результата

Пример: Если у меня есть под dat_date в варах

2016-06-21 
2016-06-21 
2016-06-21 
2016-06-22 
2016-06-22 
2016-06-23 
2016-06-23 

для конкретного key_app - я получаю:

2016-06-21 
2016-06-22 
2016-06-23 

в качестве результата запроса

+0

Решена ли ваша проблема? – FallAndLearn

ответ

1

Попробуйте это.

select distinct data.dat_date 
FROM `keywords`, `data` 
ON `keywords`.`key_prod` = `data`.`dat_id` 
WHERE `keywords`.`key_app`= 10 

Ваш первый запрос состоял в том, чтобы отображать только дату. Это можно сделать, используя select data.dat_date вместо select *. Distinct будет отображать только отдельные даты, не соответствующие тем же датам, которые были у вас. 2.

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