Heim  >  Artikel  >  Datenbank  >  Wie rufe ich mehrere Spalten aus einer MySQL-Unterabfrage ab: Virtuelle Tabellen vs. JOIN-Syntax?

Wie rufe ich mehrere Spalten aus einer MySQL-Unterabfrage ab: Virtuelle Tabellen vs. JOIN-Syntax?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 09:52:03484Durchsuche

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

Auswählen mehrerer Spalten aus einer MySQL-Unterabfrage

In MySQL kann es schwierig sein, mehrere Spalten aus derselben Tabelle mithilfe einer Unterabfrage abzurufen. Um dieses Problem anzugehen, erkunden wir verschiedene Ansätze:

Verwenden einer virtuellen Tabelle

Anstatt mehrere Unterabfragen zu erstellen, können Sie mithilfe einer Unterabfrage eine virtuelle Tabelle erstellen. Die Syntax für diesen Ansatz lautet:

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

Durch die Verwendung dieser virtuellen Tabelle in einem Join können Sie mehrere Spalten aus der angegebenen Tabelle in einer einzigen Abfrage abrufen.

Codebeispiel :

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)

Verwendung der JOIN-Syntax

Eine andere Möglichkeit besteht darin, die JOIN-Syntax zu verwenden, um mehrere Tabellen zu kombinieren, einschließlich der Originaltabelle und der virtuellen Tabelle. Mit diesem Ansatz können Sie mehrere Spalten aus den verbundenen Tabellen abrufen.

Codebeispiel:

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

Das obige ist der detaillierte Inhalt vonWie rufe ich mehrere Spalten aus einer MySQL-Unterabfrage ab: Virtuelle Tabellen vs. JOIN-Syntax?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn