Abfrage zu UNION hinzufügen

tvtotal

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgende Abfrage und möchte zum die Ausgabe von res erweitern, indem ich eine 2. Tabelle abrufen möchte, die ebenfalls die gleichen IDs beinhaltet.
SQL:
 SELECT  res.* FROM parts AS res 
            INNER JOIN
            ( 
             SELECT prefix.id, MIN(prefix.artorder) AS artorder FROM 
            (

              SELECT id, title AS VALUE, 1 AS artorder FROM parts 
              UNION 
              SELECT id, title AS VALUE, 2 AS artorder FROM parts 
            ) 
                    
           AS prefix WHERE prefix.VALUE LIKE '%folie%' GROUP BY prefix.id 
           ) 
                     
          AS data ON res.id = data.id AND res.active = 1 ORDER BY data.artorder, res.title

Wie kann ich z.B. folgende Abfrage oben anfügen und damit die Ausgabe um die IDs eben dieser Abfrage erweitern:

SQL:
SELECT prefix1.id FROM text AS prefix1 WHERE prefix1.tag LIKE '%folie%' GROUP BY prefix1.id

Danke tvtotal
 
Zuletzt bearbeitet von einem Moderator:
Du solltest dir angewöhnen dein SQL zu formatieren. Ich schaue das jetzt seit geraumen 3 Minuten an und mit den Unterselect und den ganzen Klammern den Überblick verloren.

Sorry, kann dir so nicht helfen
 
Gut, so sieht es mal schnell formatiert aus
SQL:
SELECT
	res.* 
FROM
	parts AS res 
	INNER JOIN( 
		SELECT 
			prefix.id, 
			MIN(prefix.artorder) AS artorder 
		FROM 
			(
				-- Her beginnt der UNION
				SELECT id, title AS VALUE, 1 AS artorder FROM parts 
				UNION SELECT id, title AS VALUE, 2 AS artorder FROM parts 
				-- und hier ist er fertig
			) AS prefix 
		WHERE 
			prefix.VALUE LIKE '%folie%' 
		GROUP BY
			prefix.id 
	) AS DATA 
	ON res.id = data.id 
	AND res.active = 1 
ORDER BY 
	data.artorder,
	res.title

Jetzt musst du nur zum UNION noch deine weitere Quelle hinzufügen
SQL:
SELECT
	res.* 
FROM
	parts AS res 
	INNER JOIN( 
		SELECT 
			prefix.id, 
			MIN(prefix.artorder) AS artorder 
		FROM 
			(
				SELECT       id, title AS `value`, 1 AS artorder FROM parts 
				UNION SELECT id, title AS `value`, 2 AS artorder FROM parts 
				-- Hier der weitere UNION:
				UNION SELECT id, tag   AS `value`, 3 AS artorder FROM text
			) AS prefix 
		WHERE 
			prefix.`value` LIKE '%folie%' 
		GROUP BY
			prefix.id 
	) AS `data`
	ON res.id = `data`.id 
	AND res.active = 1 
ORDER BY 
	`data`.artorder, 
	res.title

PS: data und value sind keine geeigneten Namen im SQL. Um sie als Aliase zu markieren und nicht als SQL-Befehl habe ich sie in `gesetzt
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück