2015-11-10 2 views
0

У меня есть приложение для Android, у которого есть 2 таблицы, одна таблица хранит сообщения, а другая таблица хранит изображения сообщений, если у него есть изображение, изменения не все сообщения будут иметь изображения, если сообщение имеет изображение, его первичный ключ будет храниться во внешней таблице ключей, при загрузке сообщений я должен получить все сообщения с изображением или нет, а затем проверить в таблице изображений, чтобы увидеть, какие сообщения имеют изображения и добавить изображения к сообщениям ниже это графический обзор моих таблицПолучение данных из нескольких таблиц SQLite

сообщений Таблица

`|post_id |post | post_description| 
|--------|-----|-----------------| 
|  |  |     |` 

Таблица изображения

`|img_id |fk_postID | imagePath  | 
    |--------|----------|-----------------| 
    |  |   |     |` 

я мог бы использовать присоединиться как Query = "SELECT post_id, post, post_description, imagePath FROM PostTable,
ImageTable, Where PostTable.post_id = ImageTable.fk_postID;

, но этот запрос возвращает только сообщения с изображениями и забывая о постах без изображений Как я могу получить все сообщения и быть с изображением или нет? Заранее спасибо.

+0

первый от присоединения синтаксиса вы используете потребности быть переделано, используя соединения и дальше. Таким образом, явный синтаксис соединения, который является современным. Затем перейдите в 'left join' – Drew

+0

, можете ли вы помочь с кодом, пожалуйста? Я не так хорош в sql, поэтому я действительно не получаю u –

ответ

1

нормально, вы просили, чтобы дать этот водоворот, увидеть, если вы хотите выходного

SELECT pt.post_id, pt.post, pt.post_description, im.imagePath 
FROM PostTable pt 
left join ImageTable im 
on im.fk_postID=pt.post_id 

Он будет взять с собой в поездку правой таблицы (ImageTable) из тех сообщений, которые не имеют изображения ,

Использует таблицу aliases (pt и im). Это помогает быть явным, в какой таблице столбцы берутся в первой строке, если в обоих случаях есть общие имена столбцов, а также немного меньше ввода.

Непроверено

ссылка Mysql Left Joins

+1

Oh Man Я набрал все это, мне жаль, что я не видел этого. –

+0

спасибо, я думаю, я получу идею –

0

Попробуйте использовать левый присоединиться и это приведет все записи из левой таблицы и совпавшие записи из таблицы справа.

SELECT posttable.postid,posttable.post,posttable.postdescription, imagetable.imageid,imagetable.fkpostid,imagetable.imagepath 
FROM posttable 
LEFT JOIN imagetable 
ON posttable.postid=imagetable.fkpostid 
ORDER BY posttable.postid; 

Код должен выглядеть так.

http://www.w3schools.com/sql/sql_join_left.asp

Смежные вопросы