2016-05-31 3 views
0

У меня есть таблица с item_id и некоторые другие поля.Получение данных из другой таблицы в mysql

item_id,name,address,postcode 

У меня также есть таблица сообщений, которые относятся к ITEM_ID

item_id,user_id,message 

То, что я пытаюсь сделать, это сделать запрос, который выбирает все строки в определенном почтовом индексе (не проблема существует)

, но и что-то вернуть (0 или 1, например), если пользователь, который вошел в также сообщения, связанный с элементом

поэтому у меня есть простой запрос, как это:

select item_id,name,address,postcode from items where postcode in ('3000') 

, но я хочу, чтобы каким-то образом включить таблицу сообщений, так что я остался с флагом, чтобы показать, что user_id имеет или не послал сообщение, относящееся к пункту

Как я могу это сделать?

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

+0

Sidenote: Почему вы используете 'IN()' для одного значения? –

+0

, потому что фактический запрос может содержать несколько значений для почтового индекса –

+0

Хорошо, эта часть, которую я не знал ;-) –

ответ

1

Используйте IF условия, чтобы проверить message поле IF(message.message <>'', 1, 0) as flag

SELECT 
    items.item_id,name,address,postcode, 
    IF(message.message <>'', 1, 0) as flag, message 
FROM items 
LEFT JOIN message ON items.item_id = message.item_id 
WHERE postcode in ('3000') 

Надеется, что это поможет.

+0

Хотя это было не совсем то решение, это заставило меня идти по правильному пути, чтобы разобраться –

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