2016-11-17 73 views
-1

我已经想出了如何在同一个表中搜索该表中用于搜索功能的不同属性。但是,我遇到的一个问题是我无法弄清楚如何在同一个查询中搜索两个或更多不同的表。在相同的查询中搜索不同的表

我附上了我的查询代码如下;它只是说,查询是错误的:

$search= $_POST['searchfun']; 

    // Connect database server 
    $connection = sqlsrv_connect($hostName, $connectionInfo) 
     or die("ERROR: selecting database server failed"); 

    //table to store data 
    $userTable = "TRIP"; 

    // prepare SQL query 
    $query = "(
       SELECT * 
       FROM TRIP 
       WHERE DestinationLocation LIKE '%$search%' 
        OR DepartureLocation LIKE '%$search%' 
        OR DepartureTime LIKE '%$search%' 
        OR DestinationTime LIKE '%$search%' 
        OR Distance LIKE '%$search%' 
        OR Cost LIKE '%$search%' 
        OR LicensePlate LIKE '%$search%' 
       ) 
       UNION (
       SELECT * 
       FROM USERS 
       WHERE StudentId LIKE '%$search%' 
        OR FullName LIKE '%$search%' 
        OR SchoolEmail LIKE '%$search%' 
        OR Birthday LIKE '%$search%' 
        OR Username LIKE '%$search%' 
        OR Password LIKE '%$search%' 
        OR Type LIKE '%$search%' 
       )"; 
+0

为什么不加入这些表或你的意思是不同的分贝? –

+0

请阅读[**如何问问**](http://stackoverflow.com/help/how-to-ask) \t \t这里是一个伟大的地方[** START **]( http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)了解如何提高您的问题质量并获得更好的答案。 –

+0

@NullPoiиteя它们是同一个数据库中的单独表格 –

回答

0
(
    SELECT * 
    FROM TRIP 
    WHERE DestinationLocation LIKE '%$search%' 
     OR DepartureTime LIKE '%$search%' 
     OR Distance LIKE '%$search%' 
     OR Cost LIKE '%$search%' 
     OR LicensePlate LIKE '%$search%' 
     OR SchoolEmail LIKE '%$search%' 
    ) 
    UNION 
    (SELECT * FROM USERS WHERE SchoolEmail LIKE '%$search%') 
+0

出于某种原因,它仍然表示查询错误。 –

+0

是的,永远不要说有什么错,告诉我们错误。你需要在每个工会选择相同的列数否则不会工作 –

+0

我在原始问题中更新了我的代码。你认为你可以帮助我确定是否仍然存在问题? –

0

当您使用union,应该在每个报表的列数相同,所以立即解决问题,据我所看到的,是select * from users...,它可能与select * from trip...有不同的列数您是否需要用户列表在同一个列表中?他们似乎直观地成为不同的名单。

在这种情况下,它看起来像你还可以结合就行表的查询,使用or,所建议的意见:

select * 
from trip 
where (DestinationLocation LIKE '%$search%' 
    or DestinationTime LIKE '%$search%' 
    or DepartureTime LIKE '%$search%' 
    or ... 
) 
相关问题