我有两张表:报价表和项目表。
报价表
id | quote_number
---+-------
1 | 100
2 | 200
项目表
id | model | quote_id | other_data
---+-------+----------+-----------
1 | ABC | 1 | xxx
2 | DISC | 1 | xxx
3 | ABC | 2 | xxx
4 | DISC | 2 | xxx
3 | XXX | 3 | xxx
4 | DISC | 3 | xxx
3 | ABC | 4 | xxx
我需要创建一个报告,从中选择必须包含模型的所有引号 ABC
如果他们有,我也希望列出模型 DISC
属于那句话。我想列出所有这样的项目行。怎样?
用通俗易懂的英语说就是“给我所有型号的报价,可能还有折扣(折扣)。
示例报告
quote_id | model | other_data
---------+-------+---------+-
1 | ABC | xxx
1 | DISC | xxx
2 | ABC | xxx
2 | DISC | xxx
到目前为止,我只知道如何用 ABC
但我不知道怎么把线拉进去 DISC
,条件为“必须将连接到同一报价”。
4条答案
按热度按时间b0zn9rqh1#
您应该考虑join语句:
djmepvbi2#
您可以使用子查询,如果您使用的是mysql 8.0,那么也可以使用cte
小提琴
a14dhokn3#
UNION ALL
似乎是个好办法:这种逻辑可以利用
items(model)
以及items(quote_id, model)
. 这个order by
任何解决方案都需要。flseospp4#
我认为子查询方法是最简单、最干净的方法。我不喜欢使用或条件,所以我使用了in列表。