Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Berbilang Lajur daripada Subkueri MySQL: Jadual Maya vs Sintaks JOIN?

Bagaimana untuk Mendapatkan Berbilang Lajur daripada Subkueri MySQL: Jadual Maya vs Sintaks JOIN?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 09:52:03484semak imbas

How to Retrieve Multiple Columns from a MySQL Subquery: Virtual Tables vs JOIN Syntax?

Memilih Berbilang Lajur daripada Subkueri MySQL

Dalam MySQL, mungkin sukar untuk mendapatkan berbilang lajur daripada jadual yang sama menggunakan subkueri. Untuk menangani isu ini, mari kita terokai pendekatan yang berbeza:

Menggunakan Jadual Maya

Daripada mencipta berbilang subkueri, anda boleh mencipta jadual maya menggunakan subkueri. Sintaks untuk pendekatan ini ialah:

SELECT *
FROM (SELECT col1, col2, ... FROM original_table) AS virtual_table

Dengan menggunakan jadual maya ini dalam gabungan, anda boleh mendapatkan semula berbilang lajur daripada jadual yang ditentukan dalam satu pertanyaan.

Contoh Kod :

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN (
  SELECT id, translation AS trans, language AS lang, attribute
  FROM attributeTranslation
) AS b ON (a.id = b.attribute AND b.lang = 1)

Menggunakan Sintaks JOIN

Pilihan lain ialah menggunakan sintaks JOIN untuk menggabungkan berbilang jadual, termasuk jadual asal dan jadual maya. Pendekatan ini membolehkan anda mendapatkan semula berbilang lajur daripada jadual yang dicantumkan.

Contoh Kod:

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN attributeTranslation b ON (a.id = b.attribute AND b.lang = 1)

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Berbilang Lajur daripada Subkueri MySQL: Jadual Maya vs Sintaks JOIN?. 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