mehrere columns bei subselect
sebo
- datenbank
0 Vinzenz Mai0 King^Lully0 sebo
SELECT
a.id
(SELECT width, height FROM photos WHERE user_id = a.id),
a.name
FROM table a
...
ERROR 1241 (21000): Operand should contain 1 column(s)
Weiss jemand wie man width und height in das Main-Select übernehmen kann?
Hallo
SELECT
a.id
(SELECT width, height FROM photos WHERE user_id = a.id),
a.nameFROM table a
...
>
> ERROR 1241 (21000): Operand should contain 1 column(s)
>
> Weiss jemand wie man width und height in das Main-Select übernehmen kann?
mit einem Join:
~~~sql
SELECT
a.id,
p.width,
p.height,
a.name
FROM a
INNER JOIN photos p
ON a.id = p.user_id
Nochmals die Links zu unseren Join-Artikeln:
Einführung in Joins
Fortgeschrittene Jointechniken
Freundliche Grüße
Vinzenz
SELECT
a.id,
(
SELECT
width
FROM
photos
WHERE
(user_id = a.id)
),
(
SELECT
height
FROM
photos
WHERE
(user_id = a.id)
),
a.name
FROM
table a
ERROR 1241 (21000): Operand should contain 1 column(s)
Weiss jemand wie man width und height in das Main-Select übernehmen kann?
Oder:
SELECT
a.id,
width,
height,
a.name
FROM
table a,
user
WHERE
(a.id = user.user_id)
;)
SELECT
a.id,
width,
height,
a.name
FROM
table a,
user
WHERE
(a.id = user.user_id)
wat soll dat denn bitte sein???
Da kann ich ja gleich nen INNER JOIN nehmen... a.id = user.user_id schreibt ja vor, dass in user.user_id ein eintrag vorhanden sein muss.
Aber deshalb nutze ich ja den LEFT JOIN, weil es eben auch datensätze geben kann, die nicht in beiden tabellen vorkommen.
und dass ich für jedes column ein eigenes select haben soll find ich auch ziemlich kurios, was ist denn, wenn ich jetzt 10 spalten haben will? Da jedesmal ein subselect zu machen, da kann ich ja gleich 3 Riegel Arbeitsspeicher kaufen!
SELECT
a.id,
width,
height,
a.name
FROM
table a,
user
WHERE
(a.id = user.user_id)
> wat soll dat denn bitte sein???
> Da kann ich ja gleich nen INNER JOIN nehmen... a.id = user.user\_id schreibt ja vor, dass in user.user\_id ein eintrag vorhanden sein muss.
Schon klar. ;)