小编cer*_*erd的帖子

何时使用LEFT JOIN以及何时使用INNER JOIN?

我觉得我总是被教导使用LEFT JOINs而且我经常看到它们与INNERs 混合在一起完成相同类型的查询,这些代码应该在不同的页面上做同样的事情.开始:

SELECT ac.reac, pt.pt_name, soc.soc_name, pt.pt_soc_code
FROM
  AECounts ac
  INNER JOIN 1_low_level_term llt on ac.reac = llt.llt_name
  LEFT JOIN 1_pref_term pt ON llt.pt_code = pt.pt_code
  LEFT JOIN 1_soc_term soc ON pt.pt_soc_code = soc.soc_code
LIMIT 100,10000
Run Code Online (Sandbox Code Playgroud)

那就是我正在研究的一个:

我看到很多像:

SELECT COUNT(DISTINCT p.`case`) as count
FROM FDA_CaseReports cr
  INNER JOIN ae_indi i ON i.isr = cr.isr
  LEFT JOIN ae_case_profile p ON cr.isr = p.isr
Run Code Online (Sandbox Code Playgroud)

这似乎是LEFT可能也是INNER是否有任何捕获?

mysql join

34
推荐指数
4
解决办法
4万
查看次数

使用Django REST框架的本地和mod_wsgi服务器之间的Django JWT身份验证行为不同

我试图确定为什么Authorization:使用本地开发服务器时使用标头的受保护资源的身份验证行为正常,而不是我部署的apache 2.2 w/mod_wsgi实现.

我正在使用django 1.8 django-rest-frameworkdjango-rest-framework-jwt基于JWT的身份验证的lib.apache服务器版本为2.2,带有mod_wsgi.这都是在ubuntu 12.04实例(python 2.7)上运行的.

在localhost上使用manage.py runserver的工作案例:

# manage.py runserver is running
curl -s -X POST \
  -d '{"username":"test@test.com", "password":}' \ 
  http://localhost:8000/portfolio/login

# Response as expected:
##> {"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..."}

# Using above token as $TOKEN_STR with JWT prefix for Auth header: 
curl -X GET -H "Content-Type: application/json" \ 
  -H "Authorization: $TOKEN_STR" \
  http://localhost:8000/portfolio 

# Response as expected
##> {"data":"[...]"}
Run Code Online (Sandbox Code Playgroud)

用apache2.2 mod_wsgi破案:

curl -s -X POST \
  -d '{"username":"test@test.com", "password":}' \ 
  http://myremote.com/django/portfolio/login

# Response …
Run Code Online (Sandbox Code Playgroud)

apache django mod-wsgi apache2.2 django-rest-framework

8
推荐指数
1
解决办法
926
查看次数

将RDS MySQL数据转换为平面文件以在另一个MySQL中重新加载 - 标准CLI无效

为了建立预先确定,我审查了以下内容:

  • Amazon-RDS数据库到专用服务器
  • AWS RDS的Mysqldump
  • 然而,我没有找到一个明确的解决方案来解决我在这些方面的问题,而且只有辅助因素贯穿始终 - 我想提供一个全面的具体指南,将数据移入AWS RDS中/周围.

    我确实在Percona MySQL性能会议上与一位与RDS合作的DBA顾问进行了讨论,他建议如下,这显然是一个经常出现的问题 - 我希望得到额外的投入,以帮助每个人.

**根据一家大型MySQL咨询公司和谈话中提出的举手数量,这对RDS用户非常重要.**

  • 目标#1.从RDS实例中获取数据 - 您无法在RDS中的主要版本之间移动. - 也许你想把它带到像Percona等的EC2实例.
  • 愿望清单目标#1a.其次,尽可能清理/ QA数据,
  • 目标#3 - 将数据恢复到另一个较小的RDS或其他风味/平台.

事实:

  1. 我在MySQL 5.5.x(<5.5.8)中有一个很大的(主要是utf-8的40-50GB数据集,一些latin-1).1A.无论出于何种原因,旧的管理员将我们的实例大小设置为1000GB的专用存储,只是填充.(?).
  2. 现在所有的表,显然是InnoDB - 几张表约为14GB.那是另一个问题.
  3. 可能存在多重编码:也许是UTF8; Latin-1和Swedish-fkafkakfk?

因此,我正在讨论继续这些选项:

选项A:直接.sql转储; .sql重新加载

  1. 转储,在.sql标准可执行文件中的模式和表等集成,重新加载.
  2. **因此,为了便携性,将latin-1稀释: mysqldump -u username -p --default-character-set=latin1 -N database > backup.sql mysql -u username -p --default-character-set=latin1 database < backup.sql**

问题RE:选项A: - 建议re:上面的代码,用于分块,完整性和以其他方式保证平滑转储和重新加载?或有事项的show information schema可变编码(算法处理latin1的什么不可以?)

选项B:具有Schema + QA/Schema细化的表的单个ascii文件转储

  1. 转储,用直接ASCII(Charset?UTF-8?我必须小心?)将这些数据放入,分开各自的表,也许是用于数据QA的块.

    将继续以下输出TSV DATA和SCHEMA:

    mysqldump --user=dbuser --password --tab=~/output/dir dbname

  2. 其次,通过一些perl/python来清理可能错误的垃圾字符; 编码问题; 来自8年的5个不同的DBA和大约12种不同的数据输入格式/文件类型等.

问题RE:选项B:

  • 我的数据有很多对数据都是真实的垃圾字符; 管道最好的?
  • 我从TSV等加载到AWS RDS中的基本转储中出现了可怕的错误,这些建议超出了他们的数据加载白皮书中发布的建议吗?

mysql data-migration amazon-web-services amazon-rds

6
推荐指数
1
解决办法
447
查看次数