2016-11-17 4 views
-1

同じテーブルを検索するために、そのテーブルのさまざまな属性を検索する方法を知りました。しかし、私が抱えている問題の1つは、同じクエリで2つ以上の異なるテーブルを検索する方法を理解できないことです。同じクエリで異なるテーブルを検索する

下記のクエリコードを添付しました。それだけで、クエリが間違っていると言う:

$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

なぜこれらのテーブルを結合するか、別のデシベルを意味しない:コメントで示唆されているように、あなたも、orを使用して、旅行のテーブルの上にあなたのクエリを組み合わせることができますようにこの場合

、それが見えますか? –

+0

[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [**スタート**] http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぶことができます。 –

+0

@NullPoiileteяそれらは同じデータベース内の別々のテーブルです –

答えて

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 trip...と異なる数の列を持つ可能性があるselect * from users...です。ユーザーリストを同じ旅行リストに入れる必要がありますか?彼らは直感的に別のリストであるように見えます。

select * 
from trip 
where (DestinationLocation LIKE '%$search%' 
    or DestinationTime LIKE '%$search%' 
    or DepartureTime LIKE '%$search%' 
    or ... 
) 
関連する問題