2015-09-04 2 views
0

Мне было сложно объединить несколько запросов select в запрос. , если я выбираю один запрос, он отлично работает, но присоединение к команде select с командой union ничего не показывает. что я делаю, это, скорее всего, неправильно.Как использовать несколько операторов select в запросе

$sel=mysql_query ("SELECT * 
FROM studentmark join 
    student 
    ON studentmark.student_id = student.username join 
    subject 
    ON subject.code = studentmark.code 
where student.username='$name' AND studentmark.YEAR = '$ya' AND 
    studentmark.TERM = 'THIRD') 
//it works fine without using the union for a single query but joining the query there is nothing display 

UNION(SELECT TOTAL AS secondterm 
FROM studentmark 
    JOIN subject ON subject.code=studentmark.code 
WHERE studentmark.student_id='$name' 
AND studentmark.YEAR='$ya' 
AND studentmark.TERM = 'SECOND')UNION(SELECT TOTAL AS firstterm 
FROM studentmark 
    JOIN subject ON subject.code=studentmark.code 
WHERE studentmark.student_id='$name' 
AND studentmark.YEAR='$ya' 
AND studentmark.TERM = 'FIRST'"); 

$fetch=mysql_fetch_array($sel); 
$count=mysql_num_rows($sel); 
+0

Вы unioning различное количество столбцов: 'Select *' и 'Select TOTAL AS secondterm'. Это не будет работать. Возможное решение: http://stackoverflow.com/questions/2309943/unioning-two-tables-with-different-number-of-columns –

+0

объединение только для одной таблицы не для 2 таблиц – user5189527

+0

Ваш код трудно читать , пожалуйста, отформатируйте немного лучше. Неважно, сколько таблиц вы используете в своем союзе, но количество столбцов должно соответствовать каждому запросу в объединении: '(Select * from studentmark ...) UNION (Выбрать TOTAL AS secondterm FROM studentmark ... .) UNION (SELECT TOTAL AS firstterm FROM studentmark ...) 'Второй и третий запрос возвращают только один столбец, но первый возвращает намного больше столбцов. –

ответ

0
$sel=mysql_query ("SELECT YEAR, TERM, CODE, student_id, ContAss20, AsgClassWk10, Test2nd10,Exam60, Total,tname 
FROM studentmark join 
    student 
    ON studentmark.student_id = student.username join 
    subject 
    ON subject.code = studentmark.code 
where student.username='$name' AND studentmark.YEAR = '$ya' AND 
    studentmark.TERM = 'THIRD') 
//it works fine without using the union for a single query but joining the query there is nothing display 

UNION(SELECT null, null, null, null, null, null, null,null, Total as secondterm, null 
FROM studentmark 
    JOIN subject ON subject.code=studentmark.code 
WHERE studentmark.student_id='$name' 
AND studentmark.YEAR='$ya' 
AND studentmark.TERM = 'SECOND')UNION(SELECT TOTAL AS firstterm 
FROM studentmark 
    JOIN subject ON subject.code=studentmark.code 
WHERE studentmark.student_id='$name' 
AND studentmark.YEAR='$ya' 
AND studentmark.TERM = 'FIRST'"); 

$fetch=mysql_fetch_array($sel); 
$count=mysql_num_rows($sel); 
Смежные вопросы