Mysql 使用JOIN选择特定日期
表Client包含last_name和email列,而表Product包含email和expiration_date列,共有13行记录。此语法仅正确地从Product表中选择2行 这种语法也不起作用。已选择产品表中的所有13行: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
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