2011-06-25 3 views
0

J'ai une requête SQL qui relie 3 tables à l'aide UNION:L'utilisation UNION dans une requête avec PHP

$sql ="(SELECT Drive.DriveID,Ram.Memory from Drive,Ram where Drive.DriveID = Ram.RamID) UNION 
(SELECT Drive.DriveID,External.Memory from Drive, External where Drive.DriveID = External.ExtID)"; 

Supposons que je veux obtenir Ram.Name aussi bien. Comment puis-je faire cela? Si j'utilise Ram.Name dans la première instruction SELECT, le résultat ne serait pas correct.

Une méthode pour y remédier? Je veux le faire en utilisant UNION.

Répondre

5

Dans une requête Union, toutes les colonnes doivent être spécifiées dans toutes les instructions dans le même ordre.

Par conséquent, vous aurez besoin d'avoir

(SELECT Drive.DriveID,Ram.Memory,Ram.Name 
from Drive,Ram 
where Drive.DriveID = Ram.RamID) 
UNION 
(SELECT Drive.DriveID,External.Memory, '' as Name 
from Drive, External 
where Drive.DriveID = External.ExtID) 

Ou si votre table externe a un champ Nom, vous pouvez inclure qu'un au lieu d'une chaîne vide.

+0

Oh ok laissez-moi essayer merci –