2015-04-30 2 views
0

Я застрял в куске кода, который не совсем понял. У меня есть несколько таблиц с разными именами, но теми же полями, но таблицы независимы Нечто подобное:SELECT Несколько таблиц

table1

  • идентификатор
  • пользователя
  • титул

table2

  • идентификатор
  • пользователя
  • название

Мне нужно, чтобы в одних и тех же данных запроса из двух таблиц, но я потерплю неудачу, я стараюсь с INNER JOIN, UNION ALL, но не зная, что неправильно. Сейчас у меня есть это:

$mysites = $db->QueryFetchArrayAll(" 
select * 
FROM table1,table2 
where table1.user = table2.user AND 
table1.user = 1"); 

foreach($mysites as $mysite){ 
echo $QUERY['title']; 
} 

но вернулся в этом:

title1.table1

title2.table1

и мне нравится это:

title1 .table1

title2.table1

title1.table2

title2.table2

приветствия и благодарность

+0

вы пробовали 'выбрать table1 *, таблица2 *'..? –

+0

Что такое '$ mysites' и' $ QUERY'? Определены ли они? Обратите внимание, что дело имеет значение с переменными PHP. Какой класс вы используете? – halfer

+0

Привет, спасибо за комментарий, я попробовал это (выберите table1. *, Table2. *), Но он дает тот же результат. Я скорректировал переменную $ mysites Больше идей? – Esweb

ответ

1

Вы можете использовать ключевое слово UNION так:

SELECT * FROM table1 UNION SELECT * FROM table2 

Этот запрос выбирает все из table1 и объединить результаты с теми, от table2. Обратите внимание, что вам нужно выбрать одинаковое количество столбцов из обеих таблиц. Более того, имена столбцов и типы данных будут назначаться в соответствии с первой таблицей.

Если вы хотите сохранить дубликаты добавить ключевое слово ALL:

SELECT * FROM table1 UNION ALL SELECT * FROM table2 
0

Вопрос очень неясного .....

ли идентификатор это то же самое в каждой таблице для каждого пользователя? Если так что INNERJOIN поможет

SELECT t1.*, t2.* 

FROM table1.t1 

INNER JOIN table2.t2 

ON t1.id = t2.id 

WHERE t1.user = "1" 

(Изменить INNER JOIN в LEFT JOIN, если данные могут отсутствовать)

Если это не так, то почему бы не поместить данные из одной таблицы в другую, и есть только одна таблица со всеми данными в ней?

+0

Это не возвращает никакого значения ... Каждая таблица обрабатывает множество данных и должна разделять их на две разные таблицы. Спасибо за ответ – Esweb

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