小编Mat*_*ode的帖子

使用python将mysql查询写入csv,需要显示字段名称

我有以下内容:

import MySQLdb as dbapi
import sys
import csv

dbServer='localhost'
dbPass='supersecretpassword'
dbSchema='dbTest'
dbUser='root'

dbQuery='SELECT * FROM pbTest.Orders;'

db=dbapi.connect(host=dbServer,user=dbUser,passwd=dbPass)
cur=db.cursor()
cur.execute(dbQuery)
result=cur.fetchall()

c = csv.writer(open("temp.csv","wb"))
c.writerow(result)
Run Code Online (Sandbox Code Playgroud)

这会产生乱码.我熟悉使用打印记录[0]等.不知道我应该如何设置格式.产生类似查询在控制台中的内容.我不能从mysql服务器做一个简单的INTO OUTFILE.

python mysql csv mariadb pymysql

33
推荐指数
5
解决办法
5万
查看次数

在MySQL中找到缺失的值

我正在尝试编写一个查询,以找出哪些用户未注册某些课程.

我有2张桌子; 课程和用户.两者都包含字段'id',然后分别包含'coursename'和username'.

使用这两个表,现有系统将用户添加到第三个表(称为enrolled_users).用户每个占用一行.例如,如果用户ID为'1'在4个课程上,则enrolled_users如下所示:

-----------------------
| user_id | course_id |
-----------------------
|     1   |     1     |
|     1   |     2     |
|     1   |     3     |
|     1   |     4     |
-----------------------
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这个表数据不是基于关系构建的,而是使用两个表'courses'和'users'在PHP中生成的.

我不知道如何写出如何查找用户'1'未注册的课程的查询,如果有10个课程,但我们可以看到用户'1'仅在1-4课程.

我想用像LIKE或NOT LIKE这样的东西?

SELECT u.id, c.id, ec.user_id, ec.course_id
FROM users u, courses c, enrolled_courses ec
WHERE u.id = ec.user_id
AND c.id = ec.course_id
AND u.id = '1'
Run Code Online (Sandbox Code Playgroud)

我尝试过使用!=和<>,但这并没有显示我需要的东西; 用户未注册的课程列表.

对不起,如果我是模糊的,试着让我的头围绕它!

使用MySQL 5.0,在现有系统上我无法修改,只能从​​(目前)查询.

mysql sql

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

标签 统计

mysql ×2

csv ×1

mariadb ×1

pymysql ×1

python ×1

sql ×1