php mysql UNION ALL - получить идентификатор из отдельных таблиц

0

интересно, может ли кто-нибудь пролить свет или, может быть, помочь, пожалуйста.

Я делаю график, который работает отлично, но я пытаюсь сделать так, чтобы он добавлял картинки тоже... Борясь с тем, чтобы найти решение, я постараюсь быть настолько ясным, насколько могу... UNION ALL отлично работает с информацией, которая мне нужна и отображается, однако, поскольку я пытаюсь получить изображения для указанного события из таблицы изображений, в которой есть путь, я получаю abit.

Примеры таблиц (не фактические таблицы):

Форум

|id.....|memberid.|Descrip....|date....|

|71.....|1........|Hello all..|date....|

|82.....|5........|Hows you...|date....|

члены

|id.....|memid....|username...|date....|

|1......|1........|Steve......|date....|

|2......|5........|Donna......|date....|

Изображений

|id.....|memid....|image     

|47.....|1........|images/stevepic.png|

|139....|5........|images/donnapic.png|

ОК, так как код ниже, информация не показывает никаких проблем :)

SELECT id as timeline_id, date_time as timeline_date, thread_title as 
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as 
timeline_title, town as timeline_body FROM members

Я проходил через сеть, и Stack Overflow, и я думал, что мне нужно сделать LEFT JOIN, я, возможно, ошибаюсь, я не уверен, но это то, что я считал правильным путем.

Когда я делаю LEFT JOIN ниже, я не получаю ни одной страницы, просто пустой. Журнал ошибок: PHP Предупреждение: mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result

SELECT id as timeline_id, date_time as timeline_date, thread_title as 
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as 
timeline_title, town as timeline_body FROM members LEFT JOIN membersimages ON membersimages.memid = members.memid WHERE memid = %s

То, что я пытаюсь собрать, - это идентификатор участника, так как часть форума не имеет никаких фотографий, но член делает, на шкале времени я хочу показать фотографии участников :)

Надеюсь, я объяснил, чего я пытаюсь достичь, и надеюсь, что кто-то может указать мне в правильном направлении, если я ошибаюсь :) Спасибо!

  • 0
    если вы хотите сделать UNION, таблицы должны иметь одинаковые столбцы
  • 0
    UNION работает нормально :) Я пытаюсь извлечь идентификатор из таблицы участников отдельно, чтобы я мог получить изображение участника, следовательно, левое соединение ...
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Используйте это решение: -

$sql = "select *
        from members as 'mem'
        inner join forum_posts as 'fp'
        on fp.memberid = mem.memid
        inner join images as 'img'
        on img.memid = mem.memid
        where 1" ;

Вышесказанное вы можете сделать, чтобы получить все записи одним выстрелом, но в выходном массиве будут повторяться идентификаторы членов, потому что один член будет иметь разные записи. Так лучше будет использовать таблицу 'members' и 'images' во внутреннем соединении (надеясь, что у одного пользователя будет одно изображение профиля) и создайте второй sql, чтобы получить все сообщения за идентификатор члена из 'members'. Надейтесь, что вышеупомянутое решение поможет вам. Пожалуйста, сообщите мне, есть ли какая-либо ошибка.

  • 0
    Привет Спасибо за это, хотя это было не то, что я искал, это показало мне направление, в котором я должен был идти :)

Ещё вопросы

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