2015-02-05 3 views
1

Доброе утро всем. У меня возникли некоторые трудности, пытаясь получить запрос на работу (чтобы построить взгляд на него впоследствии)Проблема с присоединением к MySQL 5.5.32

Моя структура таблицы это (укороченные для краткости)

ПЕРЕВОДНИКОВ: код, МАГ, начало, конец
пОЛЬЗОВАТЕЛЕЙ: код, электронная почта
ВОПРОСОВ: МАГ, выпуск, PubDate

«подлодка» содержит подписку на журналы: CODE является кодом компании, MAG является идентификатором Мэга, START и END являются датами, на которых подписка действительна.
«пользователей» содержит электронные сообщения, связанные с кодами компании (1/N)
«выдает» является список каждого выпуска каждого журнала, с датой публикации

SAMPLE DATA

This Fiddle должен предоставить вам некоторые данные образца. Вот pastebin с заявлениями создают с данными выборки

Я хочу ДОСТИЧЬ
Для каждого пользователя, все подписки он/она имеет право, с началом вопроса и заканчивая вопросом. Говоря с названиями колонок: USERS.email, ISSUES.mag, SUBS.start, ISSUES.issue, SUBS.end, ISSUES.issue

Для данных образца I при условии, что это должно быть:
[email protected] , 01ARS, 2014-01-01,01ARS14000387,2014-03-01,01ARS14000389

ЧТО Я ТАК ДАЛЕКО

SELECT users.email, subs.mag, subs.start, subs.end 
FROM users 
LEFT JOIN subs ON users.code = subs.code 

Я не могу получить текущие значения для start_issue и end_issue Мои , хотя и ограниченный, знание sql. Думаю, это недостаточно для достижения этого

Любая помощь будет оценена по достоинству.

+0

Добрый вечер ... пожалуйста, покажите нам код, где вы 'JOIN'. –

+0

Я обновил исходное сообщение тем, что у меня было до сих пор –

ответ

1

EDITED

Попробуйте это:

SELECT t1.email, t3.mag, t2.start, t3.issue s, t2.end, t4.issue e 
FROM users t1 
JOIN subs t2 ON t1.code = t2.code 
JOIN issues t3 ON t2.mag = t3.mag AND t2.start = t3.pubdate 
JOIN issues t4 ON t2.mag = t4.mag AND t2.end = t4.pubdate; 

SQL Fiddle

+0

Спасибо @Mikolaj или вы отвечаете, но это не правильный вывод. Я, наверное, плохо объяснил. Для представленных данных, правильный вывод должен быть: '[email protected], 01ARS, 2014-01-01, 01ARS14000387, 2014-03-01, 01ARS14000389' '[email protected], 01ARS, 2014-01-01, 01ARS14000387, 2014-03-01, 01ARS14000389 Трудная часть, кажется, получает первый и последний выпуск, включенный в подписку –

+0

@MatteoPirelli [Здесь] (http://sqlfiddle.com/ #! 2/d9fa12/6/0) вы идете. – Mikolaj

+0

@MatteoPirelli Я также отредактировал ответ. – Mikolaj

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