php - MySQL从两个表中查找匹配的记录

标签 php mysql sql

我有两个表 book1 和 book2。我在两个表中都有 issue_date 列。我想从两个表中获取匹配发行日期的记录。

book1 和 book2 有以下列 -

book_id | user_id | numofbooks | issue_date

我尝试了下面给出的 SQL 查询,但没有用 -

SELECT * FROM `book1`, `book2` WHERE issue_date between '2014-04-06' and '2014-05-07';

抛出一个错误。是否可以通过 SQL 方式执行此操作,还是我应该分别查询两个表并合并结果集?

最佳答案

我怀疑您是否真的想要两个表中所有匹配记录的笛卡尔积。

我想你想要这样的东西:

SELECT *
FROM book1
WHERE issue_date between '2014-04-06' and '2014-05-07'
UNION ALL
SELECT *
FROM book2
WHERE issue_date between '2014-04-06' and '2014-05-07';

这假设这两个表具有以相同顺序定义的完全相同的列(而这反过来又表明数据库设计不佳)。实际上,您可以将 * 替换为您真正想要的列。

关于php - MySQL从两个表中查找匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23782091/

相关文章:

java - 计算平均值的简单数学公式

mysql - 三个表的左连接

php - 计算特定日期的总行数

mysql - 如何在创建列上设置条件

javascript - 单次点击多个ID

javascript - HTML 弹出窗口修复

php - 上传时调整图像大小

java - 这段代码在java中运行后没有显示输出?

sql - PostgreSQL IS NULL 和长度

php - 如何在创建蛋糕烘焙模板 cakephp 3 时跳过选定的表格列