За последние 24 часа нас посетили 18286 программистов и 1634 робота. Сейчас ищут 1689 программистов ...

Как обьединить таблицы (primary,index)

Тема в разделе "MySQL", создана пользователем Magnez, 17 июн 2008.

  1. Magnez

    Magnez Активный пользователь

    С нами с:
    20 май 2008
    Сообщения:
    5
    Симпатии:
    0
    не могу разобраться с ключами и всем этим обьединением таблиц
    у меня есть 4 таблицы--p1,p2,p3,ts
    в каждой таблице есть поля--nomer_p, status в p-таблицах есть данные( по 1 записи)
    Вопросс: как мне связать таблицы так чтобы когда я обращался к ts у меня выводило информацию из всех трех таблиц
    к ts обращаюсь :

    $query = "SELECT * " .
    "FROM ts " .
    "ORDER BY nomer_p ";
    if(!($dbresult=mysql_query($query, $dblink)))
    {
    print("not use di DB <br>\n");
    print("mysql say: " . mysql_error() . "<br>\n");
    print("it's: $query<br>\n");
    exit();
    }
    //start table
    print("<table border=\"0\">\n");
    //header for table
    print("<tr>\n");
    print("<td bgcolor=\"#cccccc\"><b>Nomer peregrugatelya</b></td>\n");
    print("<td bgcolor=\"#cccccc\"><b>Status</b></td>\n");
    print("</tr>\n");
    //get all lines
    while($dbrow=mysql_fetch_array($dbresult))
    {
    print("<tr>\n");
    print("<td>Peregrugatel: {$dbrow['nomer_p']}</td>\n");
    if($dbrow['status']==0)
    {
    print("<td align=\"right\"><font color=\"red\">{$dbrow['status']}</td>\n");
    }
    else
    {
    print("<td align=\"right\"><font color=\"green\">{$dbrow['status']}</td>\n");
    }
    print("</tr>\n");
    }
    //end table
    print("</table>\n");

    ?>
    тоесть что бы когда я обращался к ts она автоматом вытягивала инфу из тех таблиц или как то по другому можно
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    [sql]SELECT * FROM ts, p1, p2, p3 WHERE ts.id = p1.ts_id AND ts.id = p2.ts_id AND ts.id = p3.ts_id[/sql]
     
  3. Magnez

    Magnez Активный пользователь

    С нами с:
    20 май 2008
    Сообщения:
    5
    Симпатии:
    0
    ага =) так а в п-таблицах и ts примари ключ nomer_p присваивать?? а с полем статус аналогично?

    $query = "SELECT * FROM total_status, p1, p2, p3 WHERE total_status.nomer_p = p1.nomer_p AND total_status.nomer_p = p2.nomer_p AND total_status.nomer_p = p3.nomer_p AND total_status.status = p1.status AND total_status.status = p2.status AND total_status.status = p3.status";
     
  4. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    ts.id - автоинкремент, primary key
    p1.ts_id, p2.ts_id, p3.ts_id - внешние ключи на ts.id

    условие по статусу - избыток, нормализуйте таблицы