簡體   English   中英

MySQL:如何從一列中的多列中獲取值

[英]MySQL: How to get values from Multiple Columns in one column

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM