Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用JOIN选择特定日期_Mysql - Fatal编程技术网

Mysql 使用JOIN选择特定日期

Mysql 使用JOIN选择特定日期,mysql,Mysql,表Client包含last_name和email列,而表Product包含email和expiration_date列,共有13行记录。此语法仅正确地从Product表中选择2行 这种语法也不起作用。已选择产品表中的所有13行: SELECT * FROM ( SELECT * FROM `Product` WHERE expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) AND expiry_date < DATE_ADD

表Client包含last_name和email列,而表Product包含email和expiration_date列,共有13行记录。此语法仅正确地从Product表中选择2行

这种语法也不起作用。已选择产品表中的所有13行:

SELECT * FROM
(
SELECT * FROM `Product` WHERE expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
AND expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 +1 DAY )
) A
LEFT JOIN Client ON A.email=client.email
WHERE A.expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
AND A.expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 +1 DAY )

如何仅选择2个姓氏而不是全部13个姓氏。我希望我能解释清楚。提前感谢。

您指定加入条件的方式,一切都匹配。您应该指定WHERE子句

SELECT * FROM `Product` JOIN `Client`
ON product.email=client.email
WHERE expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
   AND expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 + 1 DAY )
您需要使用GROUPBY只获取2行,而不是Product表中的所有行。例如:

SELECT * FROM `Product` JOIN `Client`
ON product.email=client.email
AND (expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
AND expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 + 1 DAY )) 
GROUP BY expiry_date

还是一样,我有13行而不是2行。如果您提供示例数据,可能会有所帮助。。
SELECT * FROM `Product` JOIN `Client`
ON product.email=client.email
WHERE expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
   AND expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 + 1 DAY )
SELECT * FROM `Product` JOIN `Client`
ON product.email=client.email
AND (expiry_date > DATE_ADD( CURRENT_DATE, INTERVAL 24 DAY ) 
AND expiry_date < DATE_ADD( CURRENT_DATE, INTERVAL 24 + 1 DAY )) 
GROUP BY expiry_date