2013-08-30 2 views
0
SELECT F.* FROM FlightSchedule F, Aircrafts A 
WHERE F.aircraftType = A.aircraftType 
LIKE CONCAT('\"','%', F.aircraftType, '%','\"') AND F.flightNum_arr='3913'; 

ОБРАЗЕЦ СОДЕРЖАНИЯ таблиц БД:Выберите одинаковые элементы (вроде)

Таблица "Расписание"

aircraftType = "320" 

стол "Самолеты"

aircraftType = "A320" 
aircraftType = "A330" 

Ожидаемый результат запрос - это выбор записи, которая имеет aircraftType = "320" и flightNum_arr = "3913", потому что "320" идентичен "A320". Проблема в том, что "320" и "A320" не считаются идентичными в этом запросе. Как решить проблему?

ответ

3

Либо используйте = для точного соответствия, либо LIKE для соответствия шаблону, но не помещайте оба из них в одно и то же выражение. И вам не нужно вводить цитаты в шаблон LIKE.

SELECT F.* 
FROM FlightSchedule F 
JOIN Aircrafts A 
ON A.aircraftType LIKE CONCAT('%', F.aircraftType, '%') 
WHERE F.flightNum_arr = '3913' 
+0

В нем говорится, что у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «F JOIN Aircrafts A ON A.aircraftType LIKE CONCAT ('%', F.aircraftType, '%') 'по строке 1 –

+0

Исправлено, я забыл ключевое слово FROM – Barmar

+0

Да-да, я это заметил. Спасибо большое. –

Смежные вопросы