+-----------------+-----------+-------+-------------+
| orders_total_id | orders_id | value | class |
+-----------------+-----------+-------+-------------+
| 1 | 1 | 34.00 | ot_subtotal |
| 2 | 1 | 8.56 | ot_shipping |
| 3 | 1 | 2.38 | ot_tax |
| 4 | 1 | 0.600 | ot_tax |
| 5 | 2 | 45.54 | ot_subtotal |
| 6 | 2 | 8.56 | ot_shipping |
+-----------------+-----------+-------+-------------+
我想显示属于任何行的所有记录,这些行也有一行具有class = ot_tax。所以在上面,1-4行会匹配,因为它们中的一个(或多个)有一个ot_tax类,它们都有相同的orders_id,但不是5-6行,因为它们也有相同的orders_id但没有class = ot_tax
我想说这里的关键与分组有关,但SQL语法对我来说仍然很陌生。感谢。
答案 0 :(得分:1)
因此,您希望获得所有包含class='ot_tax'
行的订单?
有几种方法,例如使用in
谓词:
SELECT * FROM table_name
WHERE orders_id IN (SELECT orders_id FROM table_name WHERE class='ot_tax')