Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran Terhadap Berbilang Jadual dalam Python?
Melaksanakan Skrip SQL Luaran dalam Python
Anda sedang berusaha mempelajari cara melaksanakan pertanyaan SQL dalam Python dan mempunyai fail SQL luaran yang mencipta dan memanipulasi data dalam tiga jadual: 'Zookeeper', 'Handles' dan 'Animal'. Selain itu, fail itu mengandungi satu siri pertanyaan yang akan dilaksanakan terhadap jadual ini.
Kekeliruan timbul apabila melaksanakan pertanyaan seperti berikut dari dalam Python:
--1.1 SELECT ANAME,zookeepid FROM ANIMAL, HANDLES WHERE AID=ANIMALID;
--1.2 SELECT ZNAME, SUM(TIMETOFEED) FROM ZOOKEEPER, ANIMAL, HANDLES WHERE AID=ANIMALID AND ZOOKEEPID=ZID GROUP BY zookeeper.zname;
Pertanyaan ini ialah tidak mencipta jadual tetapi sebaliknya mendapatkan semula data, yang memerlukan pendekatan berbeza daripada memasukkan atau memadam data.
Penyelesaian
Untuk melaksanakan pertanyaan ini dari dalam Python, anda boleh menggunakan pemformatan rentetan untuk menggantikan pemegang tempat nama jadual '%s' secara dinamik dengan yang sebenar nama jadual yang anda ingin tanya. Begini cara anda boleh mengubah suai kod anda:
result = c.execute("SELECT * FROM {} WHERE {} != {} AND {} != {};".format(table, column1, value1, column2, value2))
Dalam contoh ini, '{}' mewakili ruang letak untuk jadual, lajur1, nilai1, lajur2 dan nilai2. Anda kemudiannya boleh menggantikan ruang letak ini dengan nilai yang sesuai bergantung pada pertanyaan yang ingin anda laksanakan.
Kaedah Alternatif
Kaedah alternatif yang boleh anda pertimbangkan ialah mentakrifkan fungsi yang mengambil nama jadual dan pertanyaan sebagai input, menghapuskan keperluan untuk pemformatan rentetan. Pendekatan ini menawarkan lebih fleksibiliti dan kebolehbacaan.
def execute_query(table, query): result = c.execute(query.format(table)) # Do something with the results for table in ['ZooKeeper', 'Animal', 'Handles']: query = "SELECT * FROM {} WHERE {} != {} AND {} != {};" execute_query(table, query)
Pendekatan ini membolehkan anda melaksanakan pertanyaan berdasarkan keadaan berbeza tanpa mengubah suai pertanyaan itu sendiri.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran Terhadap Berbilang Jadual dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!