#php #mysql #sql
#php #mysql #sql
Вопрос:
Чего я хочу, так это отображать строки из таблицы, которая выбрана полем из другого таблицы с единственным значением, скажем, отображать изображения из таблицы по последнему идентификатору категории.
У меня есть запрос такого типа, но он возвращает мне все совпадающие строки ключей, если я устанавливаю ОГРАНИЧЕНИЕ 1, то возвращается одна строка…
SELECT i.prof_image FROM profile_images i
JOIN images_cat cat ON (cat.cat_id = i.cat_id)
GROUP BY i.prof_image;
//OR LIMIT 1;
Есть идеи по устранению этой проблемы. (т. Е. Отображение последних изображений категорий)?
Комментарии:
1. Не могли бы вы включить некоторые примеры данных и желаемый результат, пожалуйста?
2. я не уверен, что понимаю вашу проблему, но я предполагаю, что вам не хватает «DISTINCT» в вашем запросе. ВЫБЕРИТЕ DISTINCT i.prof_image ….
3. @Rufinus,@james C: Нет, я просто хочу отобразить изображения категории. по последней добавленной категории.
Ответ №1:
Это сработает для вашего конкретного примера.. Если вам нужно быть более избирательным, то, пожалуйста, опубликуйте некоторые дополнительные детали..
SELECT i.prof_image
FROM profile_images i
WHERE cat_id = (select max(cat_id) from images_cat)
Комментарии:
1. зачем выделять это? MAX (i.cat_id) должен делать точно то же самое.
2. @StevieG, да, это возможно, но я не хочу, чтобы один запрос подразумевал объединение.
3. @StevieG выдает мне ошибку… Код ошибки: 1111 Недопустимое использование групповой функции (занято 0 мс)
4. Я вернул его к исходному решению, не похоже, что вы можете сделать это без дополнительного выбора (хотя я буду продолжать пытаться!)..
5. Этот отображает только заголовок поля, но в нем нет данных. И я проверяю оба по отдельности, чтобы они работали..
Ответ №2:
SELECT * FROM table_1
LEFT JOIN table_2 ON table_1.id = table_2.id
Этот запрос захватит все данные в table_2, которые имеют одинаковое значение id.
Обратите внимание, что это ЛЕВОЕ СОЕДИНЕНИЕ — это означает, что если в table_2 нет совпадающих значений, оно все равно вернет значения из table_1.
Каковы ваши намерения при использовании last()?
Надеюсь, это поможет.
Комментарии:
1. НЕТ, это не так просто, как вы пишете,
2. @ime Извините, это не помогло, не нужно кричать: P. Вы нашли свой ответ?
3. да, ответ Стиви — помогите мне, но пока не для принятия в качестве одного запроса. имеется в виду получение записи с помощью ОБЪЕДИНЕНИЙ>…. И спасибо за твой ответ, чувак.