2016-05-26 2 views
0

Im пытается получить два colums с результатом на них, возвращенным в том же запросе, так что я мог бы получить их так же, как всегда, вместо того, чтобы делать это sepeatly.Mysql выбрать несколько colm и fetch | различное количество столбцов

я пытался:

(SELECT * FROM user_users WHERE id = 1) 
UNION 
(SELECT * FROM user_wallet WHERE userid = 1) 

, потому что я хочу, чтобы результаты user_users и user_wallet

я получил этот результат:

The used SELECT statements have a different number of columns 

Как я могу это исправить?

Я хочу сделать оба результата в запросе, который будет использоваться PHP, используя его как объект.

+0

С 'union' ваши' union classes' должны иметь равное количество столбцов. –

+0

Как я могу сделать так, чтобы получить оба результата, если я не хочу иметь равное количество столбцов? – maria

+0

Используйте «null» вместо столбцов, которые не существуют в одном из предложений select sub. –

ответ

1

Вам явно указать имена двух столбцов из каждой таблицы:

SELECT col1, col2 FROM user_users WHERE id = 1 
UNION 
SELECT otherCol1, otherCol2 FROM user_wallet WHERE userid = 1 

Если вы хотите вернуть все поля из обеих таблиц, то вы также должны явно указать имена из столбцов и использовать фиктивные NULL столбцы для таблицы, имеющей меньшее количество полей:

SELECT col1, col2, col3, col4 FROM user_users WHERE id = 1 
UNION 
SELECT otherCol1, otherCol2, othercol3, null FROM user_wallet WHERE userid = 1 

Типы полей также должны совпадать, явно или неявно.

+0

но я хочу иметь все, что от них обоих. – maria

+0

Проверьте, что я сделал. –

+0

Можете ли вы дать мне пример вывода этого? кошелек: http://prntscr.com/b8kbx0 пользователь: http://prntscr.com/b8kc09 – maria

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