我有2个数据表。 "关键字"和"数据"。
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代码的数组中显示它们。
这是我目前正在使用的查询 - 它会从特定的" key_app"中获取相同日期的列表。我需要的价值。但我只想获得这个特定key_id存在的日期数组。
SELECT * FROM `keywords`
JOIN `data`
ON `keywords`.`key_id` = `data`.`dat_id`
WHERE `keywords`.`key_app`= 10
我还没知道如何:
1.只获取dat_date部分(我想我需要data
。dat_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
vars下
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 :(得分: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
将仅列出与查询相同的日期不同的日期。