2013-03-31 2 views
0

меня есть 2 таблицы, TableA и TableBMySQL возвращается пустой результирующий набор (т.е. нулевых строк)

TableA Содержит LItems столбцов

TableB Содержит BItems колонке

LItems и BItems оба имеют различные предметы которые только пара одинаковы, мне нужно вернуть только совпадающие элементы в LItems, которые находятся в BItems.

Я попытался

SELECT 'LItems' от 'TableA' WHERE IN 'LItems' (SELECT 'BItems' от 'TableB')

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

Я также пробовал = вместо IN, и это ничего не возвращает и пробовал INNER JOINS, но это также ничего не возвращает. Когда я запускаю каждый оператор select самостоятельно и просматриваю, я вижу, что должны быть результаты, которые есть в обоих.

+0

С небольшим исключением, что вы не используете одинарные кавычки вокруг своих столбцов (я предполагаю, что это была опечатка или обратные ссылки), скорее всего, ваши данные не то же самое с LItems и BItems ... – sgeddes

+0

Можете ли вы воспроизвести его на sqlfiddle.com? – Barmar

ответ

0

Почему вы цитируете вещи в своем запросе? Вы должны иметь возможность использовать следующее:

SELECT 
    LItems 
FROM 
    TableA 
WHERE 
    LItems IN (SELECT BItems FROM TableB); 

Я бы предложил внутреннее соединение вместо этого, но сначала попробую попробовать. Также вы уверены, что имена одинаковы? Вы можете попробовать использовать функцию lower() или другую функцию для удаления пробелов или различий в капитализации.

+0

Благодарим вас за быстрый ответ. К сожалению, это вернулось с нулевыми результатами. Я попытаюсь узнать о нижнем(), как о новом, и я думаю, что вы, возможно, правы. Я посмотрел на результаты каждого, и они выглядят одинаково. –

+0

Я только что заметил белое пространство. Я дам вам знать, как я себя чувствую, спасибо –

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