gpt4 book ai didi

MySQL:如何从一列中的多列中获取值

转载 作者:行者123 更新时间:2023-11-29 11:09:36 25 4
gpt4 key购买 nike

我有 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),但在语法方面似乎没有什么效果很好

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

作为查询结果

最佳答案

试试这个。

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 相同的日期。

关于MySQL:如何从一列中的多列中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com