2012-02-07 2 views
0

Возможно ли получить данные из двух одинаковых таблиц и распечатать их? В настоящее время я могу выполнять поиск в TABLE1, но не в таблице 2.1 запрос или 2 отдельных запроса?

Editted

$name= $_SESSION['NAME']; 

USER 
ID - NAME 
1 - AAAA 
2 - BBBB 
3 - CCCC 
4 - DDDD 
5 - EEEE 

TABLE1 
ID - CODE - BUYSELL 
1 -A - Buying 
2 - A - Buying 
3 - B Buying 
4 - B - Selling 
5 - C - Selling 

"SELECT * from TABLE1, TABLE2, USER WHERE '$person' = USER.NAME 
    AND TABLE1.ID = USER.ID"; 

TABLE2 
ID - CODE - YESNO - CAR 
1 - A - YES - VOLVO 
2 - B - YES - FORD 
3 - C - YES - M 
4 - D - NO - BMW 
5 - A - NO - VOLVO 

(AND TABLE2.ID = USER.ID?????) 

Я хочу, чтобы все искать обе таблицы 1 и 2? Но добавление TABLE2.ID = USER.ID в основном ищет одинаковые значения в обеих таблицах. Поэтому, если бы я хотел, чтобы CODE для USERID 1 из таблицы 1 и 2.

Возможно ли это под 1 запросом или 2?

+0

Какой результат вы ищите? (И если обе таблицы 1 и таблица2 имеют идентификатор пользователя как столбец идентификатора, почему бы не добавить обе таблицы в таблицу пользователей?) – Arjan

+0

Почему у вас есть две разные таблицы с подобными данными? – zerkms

+1

@ Арьян: из-за нормализации? – zerkms

ответ

2

Использование UNION для объединения результатов двух запросов в один:

(SELECT id, name AS value, "users" AS tbl_name FROM users WHERE ...) 
UNION 
(SELECT id, code AS value, "codes" AS tbl_name FROM codes WHERE ...) 
+0

STAR! Спасибо! –

-1

Вы можете использовать MySQL JOIN.

SELECT USER.NAME, TABLE1.ID AS `T1ID`, TABLE2.ID AS `T2ID` 
FROM USER 
LEFT JOIN TABLE1 ON TABLE1.ID=USER.ID 
LEFT JOIN TABLE2 ON TABLE2.ID=USER.ID 
0

Предполагая, что вы user.id такое же, как и является релевантным соединение, TABLE1.ID и TABLE2.ID то я хотел бы предложить JOIN.

SELECT * 
FROM `user` AS a 
JOIN `table1` AS b 
JOIN `table2` AS c 
ON a.id = b.id || a.id = c.id 
WHERE (a.name = '".$person."') 
GROUP BY a.id 
Смежные вопросы