2015-11-23 4 views
5

2 MySQL में चयन निम्नलिखित है:शामिल होने के 2 mysql पाठ क्षेत्र के आधार पर चयन करें

1 का चयन करें:

(SELECT DISTINCT `Online_playerdatabase_v2`.`Player`, 
Online_playerdatabase_v2.First_Deposit_Date As FirstDep, 
TRUNCATE(Online_playerdatabase_v2.Balance,2) as Balance 

FROM Online_playerdatabase_v2 
WHERE `Online_playerdatabase_v2`.`Player`<>'Player' 
ORDER BY `Online_playerdatabase_v2`.`Balance` DESC; 

2 डी का चयन करें:

SELECT DISTINCT(Online_customer_activity_v2.Customers) as Player, 
max(Online_customer_activity_v2.Date) as LastAction 
FROM Online_customer_activity_v2 
WHERE `Online_customer_activity_v2`.`Total_Bets`>0 
Group by Online_customer_activity_v2.Customers 

आउटपुट 1

का चयन करें
Player  FirstDep Balance 
Ray   2014-10-19 9100.00 
Ramzi  2014-11-02 9.61 
tareq  2014-11-06 805.00 
STAN  2014-10-17 7.50 
Bill  2014-03-25 68.40 
karam  2014-11-16 676.50 
Abdul  2014-11-13 650.00 
Renaud  2014-03-12 507.00 
John  2014-11-22 500.00 

आउटपुट 2

Player LastAction 
John 2015-11-13 
Bill 2014-12-14 
Renaud 2015-03-14 
Abdul 2015-11-16 
Ray  2015-11-22 
STAN 2015-10-29 
Ramzi 2015-11-10 
Tarek 2015-05-10 
karam 2014-12-10 
Abdul 2015-02-10 

वांछित आउटपुट का चयन करें, दोनों का चयन करें जो निम्न गणना कहते हैं पर एक में शामिल होने: active days (FirstDep-LastAction) और Days_last_Visit (CurrentDate - Last Action)

निम्नलिखित तालिका में संक्षेप:

Player FirstDep Balance LastAction Active_days Days_last_Visit 
Ray  2014-10-19 9100.00 2015-11-22 399   1 
Ramzi 2014-11-02 9.61 2015-11-10 373   13 
tareq 2014-11-06 805.00 2015-05-10 185   197 
STAN 2014-10-17 7.50 2015-10-29 377   25 
Bill 2014-03-25 68.40 2014-12-14 264   344 
karam 2014-11-16 676.50 2014-12-10 24   348 
Abdul 2014-11-13 650.00 2015-02-10 89   286 
Renaud 2014-03-12 507.00 2015-03-14 367   254 
John 2014-11-22 500.00 2015-11-13 356   10 

आपकी मदद बहुत ही सराहनिय है! धन्यवाद

उत्तर

1

निम्नलिखित क्वेरी आपको इच्छित परिणाम देना चाहिए। मैं जोड़ूंगा कि मैं Player फ़ील्ड का उपयोग करके उपरोक्त अपने मध्यवर्ती प्रश्नों से दो तालिकाओं में शामिल हो गया हूं। यह शामिल होने का एक बहुत ही मजबूत तरीका नहीं है, क्योंकि तालिका में सभी खिलाड़ियों के बीच नाम अद्वितीय नहीं हो सकता है। शामिल होने का एक बेहतर तरीका किसी प्रकार के अद्वितीय पहचानकर्ता का उपयोग करना होगा।

SELECT t1.Player, t1.FirstDep, t1.Balance, t2.LastAction, 
    DATEDIFF(t2.LastAction, t1.FirstDep) AS Active_days, 
    DATEDIFF(NOW(), t2.LastAction) AS Days_last_Visit 
FROM 
(
    SELECT DISTINCT `Online_playerdatabase_v2`.`Player`, 
     Online_playerdatabase_v2.First_Deposit_Date AS FirstDep, 
     TRUNCATE(Online_playerdatabase_v2.Balance,2) AS Balance 
    FROM Online_playerdatabase_v2 
    WHERE `Online_playerdatabase_v2`.`Player` <> 'Player' 
) t1 
INNER JOIN 
(
    SELECT DISTINCT(Online_customer_activity_v2.Customers) AS Player, 
     MAX(Online_customer_activity_v2.Date) AS LastAction 
    FROM Online_customer_activity_v2 
    WHERE `Online_customer_activity_v2`.`Total_Bets` > 0 
    GROUP BY Online_customer_activity_v2.Customers 
) t2 
ON t1.`Player` = t2.`Player` 
0

आपको प्लेयर फ़ील्ड का उपयोग करके तीसरे चयन में उपक्विरी के रूप में 2 चयनों में शामिल होने की आवश्यकता है। Active_days और Days_last_Visit फ़ील्ड की गणना DateDiff() function का उपयोग करके की जा सकती है।

SELECT * 
,DateDiff(t2.LastAction,t1.FirstDep) AS Active_days 
,DateDiff(CURDATE(), t2.LastAction) AS Days_last_Visit 
FROM 
(SELECT DISTINCT `Online_playerdatabase_v2`.`Player`, 
Online_playerdatabase_v2.First_Deposit_Date As FirstDep, 
TRUNCATE(Online_playerdatabase_v2.Balance,2) as Balance 
FROM Online_playerdatabase_v2 
WHERE `Online_playerdatabase_v2`.`Player`<>'Player' 
ORDER BY `Online_playerdatabase_v2`.`Balance` DESC) t1 
LEFT JOIN 
(SELECT DISTINCT(Online_customer_activity_v2.Customers) as Player, 
max(Online_customer_activity_v2.Date) as LastAction 
FROM Online_customer_activity_v2 
WHERE `Online_customer_activity_v2`.`Total_Bets`>0 
Group by Online_customer_activity_v2.Customers) t2 
ON t1.Player=t2.Player 

हालांकि, आपको 2 डेटासेट में कैसे शामिल होना है, इस पर विचार करना होगा। मैंने बाएं शामिल होने का उपयोग किया, क्योंकि खिलाड़ियों की मेज शायद सभी खिलाड़ियों को पकड़ लेगी, लेकिन आप आंतरिक आवश्यकताओं में शामिल होना चाहेंगे या अपनी आवश्यकताओं और डेटा के आधार पर एक पूर्ण बाहरी जुड़ाव अनुकरण कर सकते हैं।

संबंधित मुद्दे