我有以下内容:
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.
我正在尝试编写一个查询,以找出哪些用户未注册某些课程.
我有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,在现有系统上我无法修改,只能从(目前)查询.