Я поставил вопрос раньше - исправил его, но у меня нет другой проблемы - у меня есть таблица с 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
Не видя данных, я бы предположил, что один из номеров "элементов" не существует в таблице элементов, поэтому он не может присоединиться к этому. В этом случае вы можете использовать левое соединение (или правое соединение в зависимости от того, из которого вы выбираете с первого раза), если вы все еще хотите вернуть элемент "list".
Пример:
SELECT *
FROM items
LEFT JOIN lists ON items.id = lists.item
WHERE lists.user = '506161637'
LIMIT 0 , 30
См. эту страницу на левые соединения
Очевидным ответом является то, что ваше соединение не соответствует критериям соединения для строки 1. Вероятно, ваша таблица Items не имеет записи, в которой он находится в списке.
Извините, ребята, это совсем не было связано с SQL. Я вырезал код в функцию и не менял имена переменных, а код стал массивом, поэтому только первый номер действительно входил в db.
Спасибо
Я считаю, что только три записи объединяются с записями из таблицы "items".