2014-10-13 4 views
0

Я пытаюсь выполнить поиск по 3 различным таблицам, однако он, похоже, не работает. Мне нужно удалить имя пользователя из таблицы users, а затем оно будет работать. Как я могу искать разные столбцы в каждой таблице?PHP mysqli поиск нескольких таблиц

$query = "(SELECT name, 'talent' FROM talent WHERE name LIKE '%" . $q ."%') 
      UNION ALL 
      (SELECT name, username, 'users' FROM users WHERE name LIKE '%" . $q ."%') 
      UNION ALL 
      (SELECT name, 'venues' FROM venues WHERE name LIKE '%" . $q ."%')"; 
+1

Каждый подзапрос 'UNION должен возвращать ровно столько же столбцов. Каждый соответствующий столбец также должен быть совместимого типа. – zerkms

ответ

1

Ваш первый и последний UNION возвращаются 2 колонки

Средний UNION возвращает 3 колонки, поэтому удаление имени пользователя не давал ошибку

Количество столбцов и тип столбцов должны быть одинаковыми при использовании UNION

+1

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

+0

@ user2570937, вам нужно указать пустое значение или значение NULL, если столбец не имеет значения в одном из выбранных – radar