Mysql - Застрял на значение одной строки для всех строк? - PullRequest
1 голос
/ 02 ноября 2010

У меня проблема с mysql, когда внутренний оператор выбора всегда оценивается с первой строкой внешней таблицы.В следующем коде «WHERE otherTable.someID = myTable1.table1_id» должен (на мой взгляд) соответствовать внешнему myTable1.table1_id, который изначально выбран.То есть каждая строка таблицы table1 обрабатывается, но внутренний myTable1.table1_id, кажется, всегда застревает в первой строке таблицы table1, что приводит к правильному выводу для первой строки, но неверному для всех последующих строк.если я заменил внутренний myTable1.table1_id фактическим значением идентификатора первой строки и запустил этот запрос.

Вот код:

SELECT 
  myTable1.table1_id, 
  ..., 
  (SELECT otherStuff FROM otherTable WHERE otherTable.someID = myTable1.table1_id)
FROM table1 myTable1 
ORDER BY myTable1.table1_id;

Спасибо за поиск!

1 Ответ

2 голосов
/ 02 ноября 2010

Похоже, вы пытаетесь сделать простое соединение:

SELECT 
  myTable1.table1_id, 
  ..., 
  otherstuff from othertable
FROM table1 myTable1 join othertable on myTable1.table1_id=othertable.some_ID
ORDER BY myTable1.table1_id;

Если вам нужно вернуть строки результатов, даже если в другой таблице нет соответствующего идентификатора, измените соединение на left join.

...