У меня есть 3 таблицы, из которых я хочу получить информацию.выберите данные с внутренними соединениями
Столы
tblStaff
идентификатор | имя
tblWork
идентификатор пользователя | неделя
tblOff
Идентификатор_пользователя | Неделя
Например, если у Михаэля есть значение или несколько значений в week
или tblWork
или tblOff
, тогда я хочу вернуть эти значения.
UPDATE
Это один работает почти как я хочу. Кроме этого, если tblOff
и tblWork
выглядит следующим образом:
Майкл = 1 Идентификатор_пользователя
Dan = 2 Идентификатор_пользователя
tblWork
Идентификатор_пользователя, неделя
1 | 2014 v47
1 | 2014 v50
2 | 2014 V48
tblOff
Идентификатор_пользователя, неделя
1 | 2014 v48
1 | 2014 v49
2 | 2014 v52
Тогда я получаю только первый результат в обеих таблицах Майкла, я не получаю значения week
.
SELECT tblStaff.name as name, tblWork.week as work_week, tblOff.week as off_week
FROM tblStaff
LEFT JOIN tblWork
ON tblStaff.id = tblWork.userid
LEFT JOIN tblOff
ON tblStaff.id = tblOff.userid
GROUP BY tblStaff.name
SLOVED
Это то, что я сделал. После того, как я использую взорваться(), чтобы отделить значения, чтобы проверить их на текущий год + неделю
SELECT tblStaff.name as name, GROUP_CONCAT(DISTINCT tblWork.week) as work_week, GROUP_CONCAT(DISTINCT tblOff.week) as off_week
FROM tblStaff
LEFT JOIN tblWork
ON tblStaff.id = tblWork.userid
LEFT JOIN tblOff
ON tblStaff.id = tblOff.userid
GROUP BY tblStaff.name
ORDER BY tblStaff.name ASC
Вы можете предоставить образец того, что вы хотите увидеть и как выглядят ваши таблицы? –
Я обновил вопрос. Как и сейчас, доза не перечисляет ничего. Нет ошибки, поэтому я должен задавать неправильный вопрос. – MrUnknown
у вас есть два варианта, которые я могу придумать от верхней части головы для запроса. Вы можете группировать concat, который будет группировать все записи в определенном столбце, разделенные чем-то, что вы выбрали (например, блок HTML-кода, если хотите), который возвращает как один столбец для определенного значения группировки (например, имя, чтобы получить все значения одного имени). Или вы можете свернуть запрос, который является более сложным. –