Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL केवल सबसे हाल की पंक्ति में शामिल हों?

आप निम्न को आजमाना चाह सकते हैं:

SELECT    CONCAT(title, ' ', forename, ' ', surname) AS name
FROM      customer c
JOIN      (
              SELECT    MAX(id) max_id, customer_id 
              FROM      customer_data 
              GROUP BY  customer_id
          ) c_max ON (c_max.customer_id = c.customer_id)
JOIN      customer_data cd ON (cd.id = c_max.max_id)
WHERE     CONCAT(title, ' ', forename, ' ', surname) LIKE '%Smith%' 
LIMIT     10, 20;

ध्यान दें कि एक JOIN INNER JOIN . का मात्र एक पर्याय है ।

टेस्ट केस:

CREATE TABLE customer (customer_id int);
CREATE TABLE customer_data (
   id int, 
   customer_id int, 
   title varchar(10),
   forename varchar(10),
   surname varchar(10)
);

INSERT INTO customer VALUES (1);
INSERT INTO customer VALUES (2);
INSERT INTO customer VALUES (3);

INSERT INTO customer_data VALUES (1, 1, 'Mr', 'Bobby', 'Smith');
INSERT INTO customer_data VALUES (2, 1, 'Mr', 'Bob', 'Smith');
INSERT INTO customer_data VALUES (3, 2, 'Mr', 'Jane', 'Green');
INSERT INTO customer_data VALUES (4, 2, 'Miss', 'Jane', 'Green');
INSERT INTO customer_data VALUES (5, 3, 'Dr', 'Jack', 'Black');

परिणाम (LIMIT के बिना क्वेरी और WHERE ):

SELECT    CONCAT(title, ' ', forename, ' ', surname) AS name
FROM      customer c
JOIN      (
              SELECT    MAX(id) max_id, customer_id 
              FROM      customer_data 
              GROUP BY  customer_id
          ) c_max ON (c_max.customer_id = c.customer_id)
JOIN      customer_data cd ON (cd.id = c_max.max_id);

+-----------------+
| name            |
+-----------------+
| Mr Bob Smith    |
| Miss Jane Green |
| Dr Jack Black   |
+-----------------+
3 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो क्षेत्रों पर समूह का उपयोग करना और SQL में गिनना

  2. ClusterControl के साथ अपने MySQL और MariaDB बैकअप को कैसे अनुकूलित करें

  3. क्या जुनीट परीक्षण मामलों के लिए MySQL इन-मेमोरी चलाने का कोई तरीका है?

  4. एसक्यूएल:2 अलग auto_increment के साथ एक संबंध तालिका बनाना

  5. MySQL कार्यक्षेत्र विकल्प - ClusterControl डेटाबेस उपयोगकर्ता प्रबंधन