2010-08-29 11 views
0

Ma question est très simple, mais je n'arrive pas à trouver la réponse ici.mysql select query

Ainsi,

Tout ce que je veux faire est de choisir entre deux tables à la fois (avec les noms de colonnes identiques [id])

J'ai actuellement

"SELECT * FROM table1 WHERE id='$id_var'" 

mais je dois aussi vérifiez aussi 'table2'. Quelle est la meilleure façon de le faire sans créer une deuxième requête? Merci.

Shane

Répondre

1
SELECT * FROM table1 WHERE id='$id_var' 
    UNION ALL 
    SELECT * FROM table2 WHERE id='$id_var' 
1
SELECT * FROM table1 WHERE id = '$id_var' 
UNION ALL 
SELECT * FROM table2 WHERE id = '$id_var' 

Cependant, la question que vous devriez demander de vous est pourquoi avez-vous deux tables avec des colonnes identiques, en premier lieu. Cela me semble être une mauvaise conception de base de données.

+0

Merci pour votre réponse. Seules les colonnes NOMS sont identiques, les données ne le sont pas. Pas de mauvais design, cette fois. – shane

+0

oui d'accord, vous pouvez garder un drapeau booléen dans la base de données pour la séparation! – shahjapan

+0

@shane: Cela ne veut pas nécessairement dire que ce n'est pas un mauvais design. –

1

Vous pouvez aussi le faire:

SELECT table1.id, table1.x, table2.y 
FROM table1 
LEFT JOIN table2 ON table1.id = table2.id 
WHERE table1.id = $id; 
+0

L'OP est très flou, mais il semble que LEFT JOIN ou INNER JOIN est ce qu'il pourrait vouloir. – chryss