2014-01-27 2 views
0

У меня есть список:Регистрация запроса в Python между объектом списка и имя_таблицами в базе данных в простом способе

[(1,'otherfield1'),(3,'otherfield3')] 

И таблица с именем department_user в базе данных:

|---ID----name-----department------manager---| 
---------------------------------------------- 
| 1 | name1 | department1 | manager1 | 
---------------------------------------------- 
| 2 | name2 | department2 | manager2 | 
---------------------------------------------- 
| 3 | name3 | department3 | manager3 | 
.............. 
........... 

Я хочу «влево присоединиться к»список и строки в таблице, чтобы получить результат ниже:

[[1, 'name1', 'dep1', 'mgr1', 'otherfield1'], [3, 'name3', 'dep3', 'mgr3', 'otherfield3']] 

Я знаю, что я могу получить rowcollection USIN g SQL-запрос 'in (....)', а затем объедините результат со списком, чтобы построить то, что я хочу.

Но есть ли простой способ сделать это?

Я новичок в Python и нашел очень полезный метод недели назад:

c.executemany(''' INSERT INTO entry (id, title) VALUES(?,?);''' 
        ,[(item.id,item.title)for item in entryList] 
      ) 

Этот API может сделать «вставить» между таблицей базы данных и список Python. Так что, я думаю, что, может быть, подобный API на «присоединиться», как это:

resultlist=cursor.leftjoin("select id,title from entry where ....",[(1,"author1"),(2,"author2")....]) 

resultlist>>>[(1,'title1','author1'),(2,'title2','author2')] 
+0

mainpoint заключается в следующем: я могу сделать «left jon» между объектом списка python и datatable в базе данных mysql в одном коде? – phiree

+0

Это зависит от того, какой интерфейс MySQL вы планируете использовать. Вы используете 'MySQLdb'? Возможно, SQLAlchemy? –

+0

Разъем mysql/python. import mysql.connector – phiree

ответ

0

Примечание, что если вы ищете, но может помочь:

>>> otherfield=[(1,'otherfield1'),(3,'otherfield3')] 
>>> mylist = [[1,'name1','dep1','mgr1'],[3,'name3','dep3','mgr3']] 
>>> mydict = dict(otherfield) 
>>> for row in mylist: 
    row+=[mydict[row[0]]] 


>>> mylist 
[[1, 'name1', 'dep1', 'mgr1', 'otherfield1'], [3, 'name3', 'dep3', 'mgr3', 'otherfield3']] 
>>> 
+0

не совсем. «mylist» в вашем коде должен быть таблицей в базе данных mysql, а не объектом списка python. это нормальный путь, – phiree

+0

Не думаю, что я полностью понимаю ваш вопрос. Если вы извлекаете данные из таблицы mysql, то это должен быть объект-курсор, и вы можете легко получить список python с помощью fetchall. Наверное, пример вашего кода на Python на то, что вы пробовали до сих пор, поможет. –

+0

обновил вопрос – phiree

Смежные вопросы