小编arm*_*inb的帖子

选择查询中的 if 子句

我想通过 equi join 从两个表中获取一些人的数据。有些人有地址数据,有些人没有。对于那些没有addresses_idfrom 表的人来说persons是 NULL。

对于所有有地址的人(查询#1):

SELECT p.last_name, p.first_name, 
       a.street, a.house_nr, a.post_code, a.city 
  FROM persons AS p, addresses AS a 
 WHERE p.id=42 AND a.id=p.addresses_id;
Run Code Online (Sandbox Code Playgroud)

对于我所做的所有没有地址数据的人(查询#2):

SELECT p.last_name, p.first_name 
  FROM persons AS p WHERE p.id=42;
Run Code Online (Sandbox Code Playgroud)

有没有什么顺畅的方法可以将这两个查询合二为一。也许有一个 if 子句?我不想自己检查该addresses_id字段然后执行 query#1 或 query#2。

我正在将 MySQL 与 InnoDB 引擎一起使用。谢谢。

mysql

2
推荐指数
1
解决办法
107
查看次数

标签 统计

mysql ×1