sebo: mehrere columns bei subselect

  
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?

  1. Hallo

    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?  
      
    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

  2.   
    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)  
    
    

    ;)

    1.   
        
      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!

      1. 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.   ;)