小编suf*_*leR的帖子

SQL:连接两个表,其中列为null

我正在使用mysql数据库.我有两个表错误和配置文件.Bugs表有两列(assigned_to,qa_contact),通过多对一关系指向配置文件.这些是我的查询的简化版本.

首先,我试图这样做但它返回重复行,其中qa_contact在bug表中为null

select 
  bug_id, 
  desc, 
  dev.assigned_to, 
  qa.qa_contact 
from 
 bugs, 
 profiles as dev, 
 profiles as qa
where 
  assigned_to = dev.userid 
  and (qa_contact = qa.userid or qa_contact is null)
Run Code Online (Sandbox Code Playgroud)

其次,我的新方法是:

select bug_id, desc, dev.assigned_to, qa.qa_contact 
from 
 bugs, 
 profiles as dev, 
 profiles as qa
where 
  assigned_to = dev.userid 
  and qa_contact = qa.userid

 UNION

select bug_id, desc, dev.assigned_to, null 
from 
 bugs, 
 profiles as dev, 
 profiles as qa
where 
  assigned_to = dev.userid 
  and qa_contact is null
Run Code Online (Sandbox Code Playgroud)

但在第二种方法中,它排除了qa_contact为null的结果.任何人都可以建议一种有效的方法,因为我处理数百万的记录,并希望在结果集上添加更多的过滤器.

mysql sql

4
推荐指数
1
解决办法
4760
查看次数

龙卷风和postgresql

我正在使用facebook的龙卷风演示

但我不想使用MySQL并尝试用PG替换它所以我继续进行修改,如下所示:

define("port", default=8888, help="run on the given port", type=int)
define("pgsql_host", default="127.0.0.1:5432", help="blog database host")
define("pgsql_database", default="pgdb", help="blog database name")
define("pgsql_user", default="admin", help="blog database user")
define("pgsql_password", default="pgpass", help="blog database password")
Run Code Online (Sandbox Code Playgroud)

        # Have one global connection to the blog DB across all handlers
    self.db = tornado.database.Connection(
        host=options.pgsql_host, database=options.pgsql_database,
        user=options.pgsql_user, password=options.pgsql_password)
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,应用程序会挂起,如何正确地将其迁移到PG?

实际上我在一段时间后得到错误:

    Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado-2.4.1-py2.7.egg/tornado/database.py", line 84, in __init__
    self.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/tornado-2.4.1-py2.7.egg/tornado/database.py", line 101, in reconnect
    self._db = MySQLdb.connect(**self._db_args)
  File "/usr/lib/pymodules/python2.7/MySQLdb/__init__.py", line 81, in …
Run Code Online (Sandbox Code Playgroud)

python postgresql facebook tornado

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

标签 统计

facebook ×1

mysql ×1

postgresql ×1

python ×1

sql ×1

tornado ×1