Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran Terhadap Berbilang Jadual dalam Python?

Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran Terhadap Berbilang Jadual dalam Python?

Barbara Streisand
Barbara Streisandasal
2025-01-02 17:32:38889semak imbas

How to Execute External SQL Queries Against Multiple Tables in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn