Erreur de requête SQL empilée et complications

Je viens d'apprendre que vous pouvez emstackr des requêtes SQL au lieu d'exécuter 4 requêtes différentes et de combiner datatables. Donc, je lis des tutoriels et d'autres choses, mais je n'arrive toujours pas à comprendre cela.

SELECT ID, (SELECT firstname FROM user WHERE ID = fundraiser.user_ID) AS firstname, (SELECT lastname FROM user WHERE ID = fundraiser.user_ID) AS lastname, (SELECT org_fund_id FROM fundraiser WHERE ID = fundraiser.ID) AS org_fund_ID, (SELECT ref_ID FROM fundraiser WHERE ID = fundraiser.ID) AS ref_ID FROM fundraiser WHERE 1 ORDER BY org_fund_ID ASC 

Voici la configuration de base pour la database / tables étant appelé: [collecte de fonds] – (ID, ref_ID, user_ID, org_fund_ID) et [user] – (prénom, nom de famille)

Fondamentalement, je veux tirer tous les champs de "collecte de fonds" de la database, mais get le "user.firstname" correspondant et "user.lastname" où "fundraiser.user_ID" = "user.ID".

Donc, il sortirait quelque chose comme ça en ligne: fundraiser.ID, fundraiser.user_ID, fundraiser.ref_ID, user.firstname, user.lastname

J'ai essayé comme 30 façons différentes d'écrire cette requête et tous ont échoué. L'erreur que je reçois est "# 1242 – La sous-requête renvoie plus d'une ligne".

Je ne sais pas comment je peux vous donner plus d'informations pour que vous puissiez visualiser de quoi je parle, mais je fournirai toutes datatables possibles.

Merci d'avance.

pour sélectionner TOUTES les colonnes:

 SELECT * FROM fundraiser f INNER JOIN user u ON u.ID = f.user_ID ORDER BY f.ord_fund_id ASC; 

pour sélectionner les colonnes nécessaires :

 SELECT u.firstname, u.lastname, f.org_fund_id, f.ref_ID FROM fundraiser f INNER JOIN user u ON u.ID = f.user_ID ORDER BY f.ord_fund_id ASC; 

Cela devrait être ce dont vous avez besoin. Voir cette page Wikipedia .