从一个表中获取所有数据,有时还会将该表与另一个表关联起来



我的问题是:我能做到吗我尝试了很多东西,其中一些是:

  • 搜索1
  • 搜索2
  • 搜索3
  • 搜索4

我需要表A的所有信息,有时我需要将此表与表格B连接起来。我的问题是,当我加入两个表时,如果表A中的特定参数不在表格B,只需在specific parameter are时给我记录,但我想要所有记录。

表A

|--------------------------------|
|           Table A              |
|-------------------|------------|
| id_table_A | name | id_table_B |
|------------|------|------------|
|   1        | Joe  |  1         |
|------------|------|------------|
|   2        | Ben  |            |
|------------|------|------------|
|   3        | Lya  |            |
|------------|------|------------|
|   4        | luis |  2         |
|------------|------|------------|

表B

|----------------------|
|      Table B         |
|----------------------|
| id_table_B | Elements|
|------------|---------|
|   1        |    Car  | 
|------------|---------|
|   2        |    Byke | 
|------------|---------|
|   3        |    Moto | 
|------------|---------|

我想在视图中显示的是:

|------------|------|------------|
| id_table_A | name | Elements   |
|------------|------|------------|
|   1        | Joe  |  Car       |
|------------|------|------------|
|   2        | Ben  |            |
|------------|------|------------|
|   3        | Lya  |            |
|------------|------|------------|
|   4        | luis |  Byke      |
|------------|------|------------|

我的模型在我的模型中,这就是我尝试的:

"SELECT * FROM table_A, table_B where table_A.id_table_B = table_B.id_table_B"

但此查询只显示数据1和4。这能不能做到?提前谢谢。

您可以使用左联接

SELECT * 
FROM table_A
left join table_B on table_A.id_table_B = table_B.id_table_B

当表之间的键可能不总是匹配时,使用左联接。在这种情况下,左联接在可能的地方检索正确的匹配,而在不可能的时候,值变为NULL

SQL LEFT JOIN文档

您需要一个显式LEFT JOIN,而不是在简单列出这样的表时使用的隐式INNER JOIN。https://www.w3schools.com/sql/sql_join_left.asp

相关内容

  • 没有找到相关文章

最新更新