Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysqli搜索多个表_Php_Mysql_Sql_Mysqli - Fatal编程技术网

PHP mysqli搜索多个表

PHP mysqli搜索多个表,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我试图搜索3个不同的表,但它似乎不起作用。我必须从users表中删除username,然后它才能工作。如何在每个表中搜索不同的列 $query = "(SELECT name, 'talent' FROM talent WHERE name LIKE '%" . $q ."%') UNION ALL (SELECT name, username, 'users' FROM users WHERE name LIKE '%" . $q ."%')

我试图搜索3个不同的表,但它似乎不起作用。我必须从users表中删除username,然后它才能工作。如何在每个表中搜索不同的列

$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 ."%')";

您的第一个和最后一个联合将返回2列

中间的联合返回3列,因此删除用户名不会出现错误


使用UNION时,列数和列类型应相同

每个
UNION
ed子查询必须返回完全相同的列数。每个对应的列也必须是兼容的类型。如果它们的列数和列类型不相同,我该怎么做?@user2570937,如果列在其中一个select字段中没有值,则需要指定空值或NULL值