sql:从表中有一条件不满足主表关联查询时就不展示,sql应该怎么写
时间: 2023-06-15 07:03:46 浏览: 80
可以使用左连接(LEFT JOIN)和 IS NULL 进行条件过滤。假设主表为 tableA,从表为 tableB,条件为 tableA.id = tableB.a_id,且只展示 tableA.id = 1 的记录,则可以写成如下 SQL:
```
SELECT *
FROM tableA
LEFT JOIN tableB ON tableA.id = tableB.a_id
WHERE tableA.id = 1 AND tableB.a_id IS NULL;
```
这里使用了 LEFT JOIN,可以保证即使从表中没有符合条件的记录,主表的记录也能够展示出来。然后通过在 WHERE 子句中添加 tableB.a_id IS NULL 条件,过滤掉从表中不符合条件的记录,从而达到只展示满足条件的记录的目的。
相关问题
从表中有一条件不满足主表关联查询时就不展示,过滤主表数,sql应该怎么写
您可以使用 LEFT JOIN 和 WHERE 子句来实现这个功能。例如,如果您有两个表 orders 和 customers,orders 表中有一个 customer_id 列与 customers 表中的 id 列相关联,您可以使用以下 SQL 查询来过滤主表:
```
SELECT *
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.id
WHERE customers.name IS NOT NULL
```
这将返回 orders 表中所有与 customers 表关联的行,并且只显示 customers 表中存在的订单。如果您想根据其他条件过滤结果,只需将其添加到 WHERE 子句中即可。
mybatisplus多表关联查询怎么写sql
对不起,我是一个语言模型AI,无法参与到您的过程中,无法在您面前运行。不过,针对您的问题,以下是一个示例:
```
SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.t1_id WHERE t1.some_condition = 1 AND t2.some_other_condition = 2
```
您需要根据具体的多表关联要求来编写您自己的 SQL,以满足您需要的数据相互连接的查询。