2017-01-30 11 views
0

Привет, я стараюсь объединить один столбец в одной таблице со столбцом в другой таблице , но я получаю ошибку. Вот кодНевозможно работать с соединением в php mysql

table names are table1 and table2 

table1, имеющий имя столбца и table2 имеющий заголовок колонки

table1 
were 
you 
when 

table2 
how 
yes 
no 

Мой PHP и MySQL код выглядит следующим образом

$query="SELECT name FROM table1 UNION ALL select title from table2"; 
$select_playlist=mysqli_query($conn,$query); 
while($row=mysqli_fetch_array($select_playlist)) 
{ 
    $title=$row['title']; 
    $name=$row['name']; 
    echo $title.$name; 
} 

Его показывает ошибка Undefined индекс: имя

Ожидаемый результат:

were how 
you yes 
when no 

Если удалить имя и печать только название его печать в

 were 
    you 
    when 
    how 
    yes 
    no 
+0

Объединение объединяет две колонки как одну. поэтому вы можете получить данные только в $ row ['title']. если вы хотите использовать $ row ['name']. вы должны написать два разных запроса. Но, глядя на ваше кодирование, вам нужно присоединиться к двум таблицам. –

+0

Операция, которая потенциально даст вам результат, который вы, похоже, хотите, - это _join_, а не 'UNION'. При этом для того, чтобы сделать соединение, вам нужно будет иметь _relate_ столбцы имени и названия, чтобы они соответствовали их значимым образом. Возможно, вам следует опубликовать полные определения таблиц. –

+0

Вам нужен JOIN для этого не UNION. И для этого соединения вам нужно сообщить базе данных о присоединении к условию, например столбец в обеих таблицах с тем же значением. – verhie

ответ

0

Ваш желаемый результат не представляется возможным с помощью этих таблиц.

Что вам нужно, это РЕГИСТРИРУЙТЕСЬ: Стыковка добавить столбцы из таблицы B в таблице А. UNION присоединяет строки из таблицы B в таблице А.

Чтобы использовать JOIN, база данных должна знать, принадлежат Ряды вместе, потому что в основном нет никакого неявного порядка строк в таблице.

Таблица 1:

id name 
1 were 
2 you 
3 when 

Таблица 2:

id title 
1 how 
2 yes 
3 no 

Затем вы можете сделать что-то вроде этого:

SELECT * FROM table1 JOIN table2 USING(`id`) 

и результат будет выглядеть следующим образом:

id name title 
1 where how 
2 you  yes 
3 when no 

(DBA's: Пожалуйста, не обвиняйте меня в неаккуратных условиях - говоря о кортежах и наборах здесь будет путать пользователя)