我有以下三个表格。关系是每个 report_param 和 report_frequency 使用中间表 report_freq_map 绑定(bind)在一起。是否可以构建一个 SQL,以便用户可以使用 frequency='daily' 之类的约束来选择所有 report_param 行,而不是使用 frequency='1'。
谢谢, -彼得
mysql> describe report_params;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| test_level | varchar(45) | NO | | NULL | |
| sequence_name | varchar(45) | NO | | NULL | |
| step_name | varchar(45) | NO | | NULL | |
| descriptions | text | NO | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
mysql> describe report_frequency;
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| frequency | varchar(25) | YES | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
mysql> describe report_freq_map;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| report_id | int(11) | NO | PRI | 0 | |
| freq_id | int(11) | NO | PRI | 0 | |
+-----------+---------+------+-----+---------+-------+
最佳答案
尝试使用 JOIN
连接表:
SELECT report_params.*
FROM report_params
JOIN report_freq_map ON report_id = report_params.id
JOIN report_frequency ON freq_id = report_frequency.id
WHERE frequency = 'daily'
关于mysql - 如何使用一个查询查询相关的三个相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3579208/