2015-05-20 5 views
0

У меня есть две таблицы в моей базе данных. Таблица «A» является основной таблицей, в которой хранятся первичная информация пользователя и другие таблицы «B», если пользователь хочет добавить дополнительный адрес в свой профиль.Извлечь данные из двух таблиц mySQL PHP

Структура обеих таблиц (имеет общие столбцы с точно такими же именами) как на рисунке ниже, за исключением некоторых столбцов дифф, которые не показаны в этой картинке

enter image description here

Теперь я хочу, чтобы отобразить адрес хранится в таблице а , а также в таблице B

Я использовал ниже запросов, но все они возвращают только значения из Таблица B

Запрос 1:

Select t1.(star),t2.(star) from `b` t2 , `a` t1 WHERE t1.emailbc = ?; 

Запрос 2:

Select t1.(star),t2.(star) from `a` t1 
INNER JOIN `b` t2 ON (a.emailbc=b.emailbc) 
WHERE t1.emailbc = ? 

Я также попытался Natural Join, но это не работает. Пожалуйста, дайте мне знать решение.

+0

использование t1 (звезда), как Star1, t2 (звезда) как star2 –

+0

Можете ли вы показать некоторые выборочные данные и как вы хотите, чтобы ваши результаты будут отображаться? – AdamMc331

ответ

1

Если вы хотите отобразить все адреса в одном столбце, но исходя из обеих таблиц, необходимо использовать UNION. Попробуйте это:..

SELECT * 
FROM table1 
WHERE emailbc = ? 
UNION 
SELECT * 
FROM table2 
WHERE emailbc = ? 
+0

joins - намного лучший вариант запроса, чем объединение. – akr

+0

@akr да, но способ OP объяснил, что это не звучит как 'JOIN' для меня. – AdamMc331

+0

Я думаю, что это служило цели ... но как насчет JOINS – Gags

0

Измените свой запрос на соединение следующим образом.

Select t1.*,t2.* from `a` t1 
INNER JOIN `b` t2 ON (t1.emailbc=t2.emailbc) 
WHERE t1.emailbc = ? 
+0

Я не могу определить разницу между вашим запросом и их? – AdamMc331

+0

@ McAdam331, запрос не использовал псевдоним t1 и t2 в части запроса. – akr

+0

@akr .. это не chnage anythng – Gags

Смежные вопросы