2010-08-29 4 views
0

Мой вопрос очень прост, но я не могу найти ответ здесь.mysql select query

Так,

Все, что я хочу сделать, это выбрать из двух таблиц одновременно (с одинаковыми именами столбцов [ID])

настоящее время у меня

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

, но мне также нужно проверьте 'table2'. Каков наилучший способ сделать это без создания второго запроса? Благодарю.

Шейн

ответ

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' 

Однако вопрос, который вы должны спрашивать с себя почему у вас есть две таблицы с одинаковыми столбцами в первую очередь. Похоже на плохой дизайн базы данных для меня.

+0

Спасибо за Ваш ответ. Только столбцы NAMES одинаковы, а данные - нет. На этот раз плохой дизайн. – shane

+0

да согласитесь, вы можете сохранить логический флаг в базе данных для разделения! – shahjapan

+0

@shane: Это не обязательно означает, что это неплохой дизайн. –

1

Вы также можете сделать это:

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

OP очень неясен, но выглядит LEFT JOIN или INNER JOIN - это то, что он может захотеть. – chryss