MySQL Query Join Table - PullRequest
       7

MySQL Query Join Table

1 голос
/ 30 марта 2012

Оба поиска возвращают правильные результаты, но когда я попытался скомбинировать 2 запроса, это привело к неправильным результатам.

$query3 = "SELECT *
FROM airport_countries, airports
WHERE airports.iso_country=airport_countries.code &&
airport_countries.name like '%$search%'
ORDER BY pageviews DESC";

$query2 = "SELECT * 
    FROM airports 
    WHERE name like '%$search%' or 
municipality like '%$search%'
ORDER BY pageviews DESC";

VVVVVVVVV

SELECT *
FROM airport_countries, airports
WHERE airports.iso_country=airport_countries.code &&
airport_countries.name like '%$search%' or
    airports.name like '%$search%'  or 
airports. municipality like '%$search%'
ORDER BY pageviews DESC

Что я делаюнеправильно?

1 Ответ

4 голосов
/ 30 марта 2012

проблема, по-видимому, является приоритетом оператора .чтобы избежать этого, просто используйте фигурные скобки:

SELECT *
FROM airport_countries, airports
WHERE airports.iso_country=airport_countries.code
AND (
    airport_countries.name LIKE '%$search%'
    OR airports.name LIKE '%$search%'
    OR airports. municipality LIKE '%$search%'
    )
ORDER BY pageviews DESC

я бы также рекомендовал использовать AND вместо && (вы пишете or вместо || - выглядит не оченьсогласен), но это только мое мнение для лучшей читаемости и не должно вызывать каких-либо различий.

...