0

私は2つのテーブルを持っています:

機能

idfunc | nomefunc | rg | cpf | etc...|
 10000 | example1 | 00 | 00  | etc...|
 10001 | example2 | 00 | 00  | etc...|

フェリアス

idferias | idfunc    | ferias...........|
00001  ..| ......... | example fe...    |
00002  ..| ......... | example fe...    |
00003  ..| ......... | example fe...    |

からferiasそれぞれでフィルタリングされたアイテムのリストを取得したい。idfuncfuncionarios

私はこのコードを試しました:

<?php
include('mysql.php');
if ($db_found) {
        $SQL = "SELECT idfunc FROM ferias AS idfunc FROM funcionarios";
        $result = mysql_query($SQL);

        while ( $db_field = mysql_fetch_assoc($result) ) {

                echo $db_field['idfunc']."<br>";
        }
} else {

print "Database NOT Found ";
mysql_close($db_handle);

}
?>

成功せずに。

4

3 に答える 3

1

両方のテーブルにidfunc;という名前の列があるため。共通のフィールドまたは列のテーブルと一致する自然な結合を行うだけです。この場合idfunc、以下のように

SELECT ferias.* FROM ferias NATURAL JOIN funcionarios

mysql 結合の詳細については、こちらを参照してください

于 2013-07-19T18:44:31.053 に答える
0

私が正しく理解できれば、必要なのは内部結合と順序付けだけです

$query = "SELECT * FROM ferias fer INNER JOIN funcionarios func ON func.idfunc = 
fer.idfunc ORDER BY idfunc DESC";
于 2013-07-19T18:37:48.570 に答える
0

feriasにあるすべての行が必要idfuncだと思いますfunctionaris。次のクエリでそれを実現できます。

SELECT ferias.idfunc FROM ferias JOIN functionarios ON ferias.idfunc = functionarios.idfunc

a JOIN baと の両方に存在する行のみを返しますb。ドキュメントはこちらにあります

于 2013-07-19T18:39:16.077 に答える