Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql пресичане въз основа на едно поле

Можете да използвате прост JOIN за тази работа:

SELECT 
  m1.* 
FROM
  mytable m1 
  INNER JOIN mytable2 m2 
    ON m1.history = m2.history 

връща:

id  emails      phones          history insert_date
237 PLEASE SET  [email protected]  gomez   2015-01-11

Заявката във вашия въпрос ще изглежда така:

SELECT 
  m1.* 
FROM
  mytable m1 
  INNER JOIN mytable2 m2 
    ON m1.history = m2.history 
WHERE `insert_date` >= DATE_SUB(CURDATE(), INTERVAL 3 DAY)

И правилно не връща нищо, защото единственият квалифициращ запис има дата, по-стара от 3 дни.

Ето невероятно полезна инфографика, свързваща операциите с набори и SQL функции

http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig .jpg



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да търсите изображения по име в папка?

  2. Използване на MySQL тригери

  3. CONCAT множество полета към едно поле с единично разстояние

  4. PHP/MYSQL позволява само един глас на член?

  5. Най-добра практика/стандарт за съхранение на адрес в SQL база данни