(1)プログラム初心者です。
PYTHONでc:\PyPostにSQLite3でデータベースを作り、この中には2つのテーブルを作りリレーションを作りデータを
表示したい
(2)SQL文でLIKE %何々%とINNER JOINで2つのテーブルを結合しそれぞれの登録データを表示したいのですが
LIKE単独及びJOIN単独の場合は表示できますが、両方を指定した場合(下記ソースコードで# 3.1と2を纏める以下の部分)エラーとなります。対策をご教授ください。
エラー表示は下記の通りです。
Tracebackk (most recent call last):
File "c:\PyPost\sqltest.py", line 31, in <module>
cur.execute(sql)
sqlite3.OperationalError: near "INNER": syntax error
(3)使用システム WINDOWS10 PYTHON3.2.8
(4)ソースコードsqltest.py
import sqlite3
conn = sqlite3.connect("PyPostDb.db")
cur = conn.cursor()
住所データに「東京」が有るものを検索
adress = "東京"
1.LIKE%での検索
sql = "SELECT * FROM PyPostTbl" + " WHERE PyPostTbl.Add1 LIKE '%" + adress + "%'"
cur.execute(sql)
print('ナンバー1')
データ表示
a = cur.fetchall()
for row in a:
print(row[0],row[1])
2.第2のテーブルを結合(INNER JOINで結合)
sql = "SELECT * FROM PyPostTbl" + " INNER JOIN KuwakeTbl on PyPostTbl.KuwakeId = kuwakeTbl.KuwakeId"
cur.execute(sql)
print('ナンバー2')
データ表示
a = cur.fetchall()
for row in a:
print(row[0],row[1])
3.1と2を纏める(LIKEとJOIN併用)この表示部でエラー発生
sql = "SELECT * FROM PyPostTbl" + " WHERE PyPostTbl.Add1 LIKE '%" + adress + "%'" + " INNER JOIN KuwakeTbl on PyPostTbl.KuwakeId = kuwakeTbl.KuwakeId"
cur.execute(sql)
print('ナンバー3')
データ表示
a = cur.fetchall()
for row in a:
print(row[0],row[1])