вопрос sql join запрос (mysql)

0

Я поставил вопрос раньше - исправил его, но у меня нет другой проблемы - у меня есть таблица с 4 записями, и мой sql возвращает только три записи

Я попробовал два типа соединения здесь:

SELECT items.id, items.link, items.title, items.image, lists.user, lists.dated 
  FROM lists, items 
 WHERE lists.user = '506161637' 
   AND lists.item = items.id 
ORDER BY lists.dated;

... и другое:

SELECT * 
FROM items
JOIN lists ON items.id = lists.item
WHERE lists.user = '506161637'
LIMIT 0 , 30

таблица списков приведена ниже, и она возвращает записи с 8,6,5

id   user        item  dated
---------------------------------
20   506161637   1     2009-11-19
19   506161637   8     2009-11-19
18   506161637   6     2009-11-19
17   506161637   5     2009-11-18
  • 0
    есть ли запись в таблице предметов с идентификатором 1?
  • 0
    Вы проверили таблицу предметов для предмета с идентификатором 1?
Показать ещё 1 комментарий
Теги:

4 ответа

3

Не видя данных, я бы предположил, что один из номеров "элементов" не существует в таблице элементов, поэтому он не может присоединиться к этому. В этом случае вы можете использовать левое соединение (или правое соединение в зависимости от того, из которого вы выбираете с первого раза), если вы все еще хотите вернуть элемент "list".

Пример:

   SELECT * 
     FROM items
LEFT JOIN lists ON items.id = lists.item
    WHERE lists.user = '506161637'
   LIMIT 0 , 30

См. эту страницу на левые соединения

  • 0
    Изменено "RIGHT JOIN" на "LEFT JOIN"
1

Очевидным ответом является то, что ваше соединение не соответствует критериям соединения для строки 1. Вероятно, ваша таблица Items не имеет записи, в которой он находится в списке.

0

Извините, ребята, это совсем не было связано с SQL. Я вырезал код в функцию и не менял имена переменных, а код стал массивом, поэтому только первый номер действительно входил в db.

Спасибо

0

Я считаю, что только три записи объединяются с записями из таблицы "items".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню