首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MySQL连接四个表

如何使用MySQL连接四个表
EN

Stack Overflow用户
提问于 2010-10-08 21:11:32
回答 1查看 587关注 0票数 0

我有omc_projects,omc_logs,omc_specs和omc_files。

所有omc_logs、omc_specs和omc_files表都有一个名为project_id的字段。

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `omc_projects` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  ...
  PRIMARY KEY (`id`)
) ... ;

CREATE TABLE IF NOT EXISTS `omc_files` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `project_id` int(11) NOT NULL,
 ...
  PRIMARY KEY (`id`)
) ... ;


CREATE TABLE IF NOT EXISTS `omc_logs` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `project_id` int(10) NOT NULL,
  ...
  PRIMARY KEY (`id`)
) ... ;


CREATE TABLE IF NOT EXISTS `omc_specs` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `project_id` int(10) NOT NULL,
  ...
  ...
  PRIMARY KEY (`id`)
) ... ;

现在,我在一个模型中创建了一个删除函数,以检查是否有类似的文件、规范或日志。

代码语言:javascript
复制
function checkproject($id){
// if there are any data in one of table, returns TRUE 

$query = 'SELECT omc_projects.id, omc_specs.id, omc_logs.id, omc_files.id
FROM omc_projects
JOIN omc_specs
         ON omc_specs.project_id = omc_projects.id
JOIN omc_logs
        ON omc_logs.project_id = omc_projects.id
JOIN omc_files
        ON omc_files.project_id = omc_projects.id
WHERE omc_projects.id = $id'

        $query = $this->db->get();
        if ($query->num_rows() > 0){              
                return TRUE;
        }else{
            return FALSE;
        }
        $query->free_result();

     }

如果任何表中只有一个数据,我希望返回TRUE,如果没有,则返回FALSE。

但是,如果所有表中都有数据,则可以执行此操作。如果等级表或任何其他表中有一个,则不会返回TRUE。

我应该如何连接这些表?左还是内??

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2010-10-08 21:14:42

您应该使用outer join。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3890806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档