2016-12-20 2 views
1

Это мой текущий запрос.Как добавить столбец в мой запрос, используя другой запрос?

SELECT com.commisionAmount, stu.studentName, pay.paymentDate, pay.paymentAmount 
FROM `commisions` as com INNER JOIN `accounts` as acc ON com.commisionAccount = acc.id 
INNER JOIN `studentpayments` as pay ON com.paymentID = pay.id 
INNER JOIN `students` as stu ON pay.paymentStudent = stu.id 
WHERE pay.paymentDate BETWEEN '$startdate' AND '$enddate' AND acc.id = '$id' 

Я хочу также выбрать stu.signedUpBy при выполнении этого запроса ... это идентификатор, который ссылки acc.id но я хочу, чтобы показать acc.username, который прилагается к этому ID. Как мне лучше всего это сделать? Я пробовал это как внутреннее соединение, и он не работает. Неправильные результаты

SELECT com.commisionAmount, stu.studentName, pay.paymentDate, pay.paymentAmount, acco.username 
FROM `commisions` AS com 
INNER JOIN `accounts` AS acc ON com.commisionAccount = acc.id 
INNER JOIN `studentpayments` AS pay ON com.paymentID = pay.id 
INNER JOIN `students` AS stu ON pay.paymentStudent = stu.id 
INNER JOIN `accounts` AS acco ON stu.signedUpBy = acc.id 
WHERE pay.paymentDate 
BETWEEN '2016-08-01' 
AND '2016-10-31' 
AND acc.id = '46' 
+0

В чем проблема? Почему бы просто не добавить поле в SELECT? Для чего СОЮЗ? – shmosel

+0

Я не знаю, как заставить его показывать имя пользователя, а не идентификатор. – yoyo

ответ

0

Если я правильно понимаю, вам просто нужно добавить еще JOIN на счета. Затем вы можете ввести имя пользователя:

SELECT c.commisionAmount, s.studentName, p.paymentDate, p.paymentAmount, 
     a2.username 
FROM commisions c INNER JOIN 
    accounts a 
    ON c.commisionAccount = a.id INNER JOIN 
    studentpayments sp 
    ON c.paymentID = sp.id INNER JOIN 
    students s 
    ON p.paymentStudent = s.id LEFT JOIN 
    accounts a2 
    ON a2.id = s.signedupby 
WHERE p.paymentDate BETWEEN '$startdate' AND '$enddate' AND 
     a.id = '$id'; 
+0

Как вы прокомментировали, я изменил свое внутреннее соединение налево, и это сработало. Это ваше решение. Благодарю вас, сэр! – yoyo

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