2016-04-13 4 views
0

У меня есть две таблицы, в которых естьКак выбрать запись из двух разных таблиц

+----------------------------+ 
| task      | 
+----------------------------+ 
| id | t_title | t_assign_to | 
+----------------------------+ 

+-----------------------------+ 
| task_employee    | 
+-----------------------------+ 
| id | emp_name | emp_underon | 
+-----------------------------+ 

Мой вопрос заключается в том, что я хочу, чтобы принести t_assign_to из-за стола задач, которые имеющей emp_underon = ' 2 'в таблице task_employee с внешним ключом (t_assign_to)

<?php     
    $sql = mysql_query("SELECT * FROM task");/// i got all value from here 

    $sql=mysql_query("SELECT * FROM task_employee WHERE emp_underon ='2'");// i got all value from here 

    //$sql=mysql_query("SELECT * FROM task UNION SELECT * FROM task_employee WHERE emp_underon='2'"); 
    $count = mysql_num_rows($sql); 
    while($row=mysql_fetch_assoc($sql)) 
    { 
    echo $row['t_assign_to']; 
    } 
?> 

ответ

0

Я думаю, что t_assign_to является внешним ключом для task_employee Так я соединить их вместе

Схема 1

$sql = "SELECT * FROM task t INNER JOIN task_employee te ON t.t_assign_to = te.id"; 

Схема 2

$sql = "SELECT * FROM task t,task_employee te WHERE t.t_assign_to = te.id"; 

Если имя поля в таблице же с другим полем в другой таблице просто измените название поля, например:

$sql = "SELECT table.field as new_field_name FROM task t,task_employee te WHERE t.t_assign_to = te.id"; 

Для вас удобным,

$sql = "SELECT * FROM task t INNER JOIN task_employee te ON t.t_assign_to = te.id WHERE te.emp_underon = '2' " 
$q = mysql_query($sql); 
$c = mysql_num_rows($q); 
if($c > 0) 
{ 
    while($r = mysql_fetch_assoc($q)) 
    { 
    echo $r['t_assign_to']; 
    } 
} 
+0

я не получил какую-либо ошибки, но значение также не получает, что средний по te.id, идентификатор означает, что – yuvi

+0

я обновил свой ответ, вы можете обратиться к нему, чтобы сделать последние изменения. Te - это сокращение от task_employee, это означает, что я присоединяю их вместе по их ID –

+0

считает, что будет возвращено 0, но Db у меня есть 2 строки emp_underon = '2' – yuvi

0

Я надеюсь, что вы можете получить ответ на этот запрос, хотя я не проверял этот SQL.

select task.t_title, task.t_assign_to, task_employee.id as emp_id, task_employee.emp_name from task inner join task_employee on task.t_assign_to = task_employee.emp_underon where task_employee.emp_underon = 2 
+0

Получение такой же ошибки Предупреждение: mysql_fetch_assoc() ожидает от параметра 1 до быть ресурсом, boolean указано в /home/srisanka/public_html/cupid/TV/managers.php в строке 442 – yuvi

+0

@yuvi, пожалуйста, запустите этот запрос в mysql (по phpmyadmin) и поделитесь со мной этим результатом? – naf4me

+0

Я не могу получить доступ к phpmyadmin – yuvi

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