За последние 24 часа нас посетили 17794 программиста и 1628 роботов. Сейчас ищут 1064 программиста ...

Oracle help

Тема в разделе "Oracle Database", создана пользователем monoton, 30 мар 2008.

  1. monoton

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

    С нами с:
    30 мар 2008
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте уважаемые. Есть база Oracle. В ней есть 2 таблицы
    в первой таблице находятся столбцы ID и SNAME
    во второй находятся FIN, DEAL и т.д.
    такого плана:
    1-я таблица (fin)
    | ID | SNAME |
    | 173 | Intel |
    | 432 | AMD |
    | 324 | core2duo|
    | 321 | phenom |
    | .......| ...............|
    | .......| ...............|
    | .......| ...............|
    | 532 | centrino |

    2-я таблица (inf_ac)
    | FIN | DEAL |
    | 200 | 302.432 |
    | 127 | 7324.21 |
    |173 | 212.454 |
    | 432 | 4342.21 |
    | .........| ..............|
    | .........| ..............|
    | .........| ..............|
    | 321 | 32432.2 |

    Смысл этих 2-х таблиц состоит в том что должна выводиться 2-я таблица и вместо FIN подставлять SNAME из таблицы 1
    т.е. должно получаться в итоге
    | наименование | цена |
    | intel | 212.454 |
    | AMD | 4342.21 |
    | phenom | 32432.2 |
    |...............| ......................|
    |...............| ......................|
    |...............| ......................|

    Собственно вопрос как сделать это сопоставления
    На данный момент код такой
    Код (Text):
    1. <HTML>
    2. <BODY>
    3. <?php
    4. $c = OCILogon (  );
    5. if ( ! $c ) {
    6. echo "not connected: " . var_dump ( OCIError () );
    7. die();
    8. }
    9. $x = OCIParse ( $c , "select * from fin" );
    10. OCIExecute ( $x , OCI_DEFAULT );
    11. while ($row1 = oci_fetch_array ($x, OCI_ASSOC)) {
    12. echo "<td>", $row1['ID'], "&nbsp;&nbsp;&nbsp;&nbsp;", "</td>";
    13. echo "<td>", $row1['SNAME'], "</td><BR>";
    14. }
    15. echo "<table border=1>";
    16. echo "<tr><th>FIN</th><th>L_PRICE</th><th>BEST_BUY</th><th>DEAL_MIN</th><th>DEAL_MAX</th></tr>";
    17.  
    18. $s = OCIParse ( $c , "select * from inf_ac" );
    19. OCIExecute ( $s , OCI_DEFAULT );
    20.  
    21. echo "<tr>";
    22.  
    23. while ($row = oci_fetch_array ($s, OCI_ASSOC)) {
    24. echo "<td>", $row['FIN'], "</td>";
    25. echo "<td>", $row['L_PRICE'], "</td>";
    26. echo "<td>", $row['BEST_BUY'], "</td>";
    27. echo "<td>", $row['DEAL_MIN'], "</td>";
    28. echo "<td>", $row['DEAL_MAX'], "</td>";
    29. echo "</tr>";
    30. }
    31.  
    32. echo "</table>";
    33.  
    34. OCICommit ( $c );
    35.  
    36.  
    37. ?>
    38. </BODY>
    39. </HTML>
     
  2. tanir

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

    С нами с:
    7 апр 2008
    Сообщения:
    6
    Симпатии:
    0
    с ораклем я ни разу не работал, но я думаю sql-запрос от этого не измениться
    select fin.sname, inf_ac.deal
    from inf_ac
    left join fin on fin.id = inf_ac.fin

    получаешь fin.sname, inf_ac.deal