по причинам, которые я не могу объяснить, левое внешнее соединение, которое раньше работало нормально, больше не работает после изменения одной из таблиц.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 уникален), но это не имеет значения.
поля являются простыми числами, и есть определенные матчи (из наблюдений)
Пожалуйста, разместите небольшой образец данных из обеих таблиц. –
Кроме того, не рекомендуется «SELECT *» в запросе соединения. Всегда указывайте столбцы в списке 'SELECT', поскольку они не будут возвращены должным образом, если объединенные таблицы имеют коллизии имен. –
Можете ли вы опубликовать определения таблиц? Немного обеспокоен тем, что вы указываете, что поля являются просто цифрами, но вы кладете кавычки вокруг значения cust_index2 в предложение WHERE. Если two.cust_index2 больше не уникален, вы просто получите несколько возвращенных строк. – Kickstart