mysql - 我当前的任务是否需要使用完整连接来连接 mysql 中的多个表

标签 mysql

我的任务是从多个表中选择一些列。我认为它可能应该使用完全连接。但我不确定。而且mysql似乎也不支持full join。我的任务描述如下:

我的任务中的

表格:

表格项目 <em>id</em> | <em>pname</em> | <em>status</em> 21 | pr1 | 1 22 | pr2 | -1 23 | pr3 | 1 24 | pr4 | 1 ... ........ | |<br/>
应用 <em>projectid</em> | <em>appstype</em> | <em>status</em> 21 | 3 | 1 22 | 5 | -1 22 | 6 | 1 22 | 7 | -1 23 | 7 | 1 24 | 5 | -1 ... ........ | |<br/>
crinfo <em>projectid</em> | <em>crname</em> | <em>status</em> 21 | crname1 | 1 22 | crname2 | -1 23 | crname2 | -1 22 | crname3 | -1 24 | crname3 | 1 ... ........ | |<br/>
sourcedim

apps 中的

ForeignKey appstype 引用 <em>appstype</em> | <em>sourcedesc</em> 3 | desc3 5 | desc5 7 | desc7 ... ........ |<br/>

预期结果

<em>pname</em> | <em>crname</em> | <em>sourcedesc</em> pr1 | crname1 | desc3 pr3 | | desc7 pr4 | crname3 | ... ........

最佳答案

否(幸运的是),因为 MySQL 不支持完全连接。您可以使用左连接。如果我正确理解数据和逻辑:

select p.pname, c.crname, sd.sourcedesc
from projects p left join
     crinfo c
     on p.id = c.projectid and c.status = 1 left join
     apps a
     on p.id = a.projectid and a.status = 1 left join
     sourcedim sd
     on a.appstype = sd.appstype
where p.status = 1;

关于mysql - 我当前的任务是否需要使用完整连接来连接 mysql 中的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34435241/

相关文章:

c - 添加mysql客户端库出现段错误

php - 如何在 PHP 或 Jquery 中从前端更改数据库值?

mysql - 导轨 : Trouble with has many through relationships

mysql - SQL : combinig 2 rows into 1 row based on the first field in row

php - 了解 PHP 中的输入转义

mysql - Ecto 不允许使用片段参数进行 mysql 全文搜索

php - MySQL 数据库中的数字,以逗号格式化

PHP 文件 - 导出 xls 而不是 csv

javascript - 如何以图表的形式展示系统生成的结果

php - 数组未从数据库输入数据