MySQL: एक कॉलम में एकाधिक कॉलम से मूल्य कैसे प्राप्त करें - mysql

मेरे पास डेटा के साथ 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 अनुभाग प्राप्त करें (मुझे लगता है मुझे चाहिए datadat_date मेरी क्वेरी में "*" के बजाय। 2. प्रत्येक के लिए मौजूद अलग-अलग तिथियां कैसे प्राप्त करें key_prod

मैंने ऑर्डर बाय और MAX (आईडी) के सभी प्रकारों का उपयोग करने की कोशिश की और 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

एक प्रश्न परिणाम के रूप में

उत्तर:

उत्तर № 1 के लिए 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 थीं।


संबंधित सवाल
सबसे लोकप्रिय