2013-02-15 2 views
2

по причинам, которые я не могу объяснить, левое внешнее соединение, которое раньше работало нормально, больше не работает после изменения одной из таблиц.MySQL оставил внешнее соединение, возвращая значения NULL

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

mysql_query ("CREATE TABLE Everything(
SELECT * from two 
    left outer join CPEs on CPEs.cpe_cust_index = two.cust_index2 
    where cust_index2 > \"0\" 
)") 
or die (mysql_error());#("this certainly didn't work\n"); 
echo "It works!\n";' 

Это используется для сопоставления двух полей (оба varchars одинаковой длины) и добавления CPE к двум, но теперь таблица All отображает NULL везде, где должны быть поля из CPE.

Я пропустил что-то очевидное?

Все, что я могу представить, это то, что two.cust_index2 больше не является уникальным полем (хотя CPEs.cpe_cust_index уникален), но это не имеет значения.

поля являются простыми числами, и есть определенные матчи (из наблюдений)

+1

Пожалуйста, разместите небольшой образец данных из обеих таблиц. –

+0

Кроме того, не рекомендуется «SELECT *» в запросе соединения. Всегда указывайте столбцы в списке 'SELECT', поскольку они не будут возвращены должным образом, если объединенные таблицы имеют коллизии имен. –

+0

Можете ли вы опубликовать определения таблиц? Немного обеспокоен тем, что вы указываете, что поля являются просто цифрами, но вы кладете кавычки вокруг значения cust_index2 в предложение WHERE. Если two.cust_index2 больше не уникален, вы просто получите несколько возвращенных строк. – Kickstart

ответ

0

@Michael, Вы решаемые его, окольным путем. Когда я экспортировал CSV-файл, я заметил предыдущее пространство перед каждым полем старой таблицы. Я только что редактировал свои сценарии, чтобы сортировать и удалять пробелы, и теперь это работает.

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

Спасибо за ваше время, ребята!

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