2016-11-24 2 views
0

Я генерирую запрос. У меня есть две таблицы: рейсы и пункты назначения. В таблице полета, у меня есть столбец: идентификатор, отправление, назначение, цена, авиакомпания, класс и в таблице пунктов назначения, что у меня есть столбец: id, destination, country, region.где предложение во внутреннем соединении

Теперь я хочу, чтобы получить полёты детали которого регион "Europe". Я делаю inner join. Мой запрос:

SELECT * 
FROM `flights` 
INNER JOIN destinations ON flights.destination = destinations.destination 
where region= 'europe' 

Его дает мне нулевой результат. если я удалю (where region= 'europe') по моему запросу, тогда он даст мне результаты всех столбцов рейсов и пунктов назначения.

Пожалуйста, помогите мне

+0

Верхний/нижний регистр вопрос? – jarlh

+0

no its not the issue –

+1

Вы уверены, что строки существуют в базе данных? –

ответ

0

Попробуйте

SELECT * 
FROM `flights` 
INNER JOIN destinations 
    ON flights.destination = destinations.destination 
where LOWER(region) = 'europe' 
+0

Но OP говорит, что только JOIN возвращает рейсы. Сделай НИЖНИЙ в ГДЕ вместо ... – jarlh

+0

@jarlh Да, смущен, чтобы ответить быстро. Обновлен запрос. – Viki888

0

Хочу отметить, что вы говорите 'Europe' является регионом. MySQL может быть чувствительным к регистру, в зависимости от сопоставлений, используемых для базы данных и таблицы (но не по умолчанию). Итак, я хотел бы начать с сравнением надлежащего случая:

SELECT * 
FROM flights f INNER JOIN 
    destinations d 
    ON f.destination = d.destination 
WHERE d.region = 'Europe'; 

Если это не сработает, то странные символы, возможно, вкрались в region колонки. Вы можете попробовать:

WHERE lower(d.region) like '%europe%' 
+0

работает с нижним (d.region), как «% europe%». не могли бы вы рассказать мне, как я пишу этот запрос в codeigniter ???? –

+0

@HarrisKhan. , , Новый вопрос следует задавать как * новый * вопрос. Этот вопрос явно не связан с Codeigniter. Если вы измените вопрос, тогда вы аннулируете текущие ответы, что является грубым, потому что это может привлечь downvotes. –

0

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

SELECT * 
    FROM `flights` 
    INNER JOIN destinations ON flights.destination = destinations.destination 
     AND destinations.region = 'europe' 

ли значение Flights.Destination сберегать Id таблицы назначения? Возможно, вам потребуется скорректировать соединение до

flights.destination = destinations.Id 
Смежные вопросы