2011-03-12 11 views
0

は私は(誕生日=)1977年5月5日に生まれ、誰のために10%給与を増加させるクエリを作成する必要がある2つの表AおよびB2つの異なるテーブルをリンクして2つ目のテーブルを更新するにはどうすればよいですか?

Table A .Birthday .Name .LastName 
Table B .Date  .Salary .Rent 

を有します。

私は、これら2つのテーブルをリンクする方法を知っていると、彼らはそれらのテーブルを結合することはできません共通の列を持っていないとして、それがテーブルB

答えて

1

を更新しないでください。

+0

日付と誕生日は一致していますか? –

0

まず、これらの2つのテーブルをリンクする必要があります。 Aテーブルにa_idのフィールドを作成し、そのフィールドをAテーブルの主キーとして使用します。次に、Bテーブルの外部キーとしてフィールドa_idを作成します。その後、あなたは、以前に仲間の著名なユーザーで述べたように、クエリに

 
$q="select a_id from A where birthday='05/05/1977'"; 
$rs= mysql_query($q); 
if($rs && mysql_num_rows($rs)) 
{ 
whlile($rd=mysql_fetch_object($rs)) 
{ 
    $q1="update B set salary=(salary*1.1) where aid=$rd->aid"; 
    $rs=mysql_query($q1); 
} 
} 
+0

残念ながら、おそらく従業員の給与を倍増させるでしょう:)クエリはおそらく書かれているはずです: 'update B set salary = salary * 1.1 where aid = $ rd-> aid' –

+0

ああ申し訳ありません。 matthewhより。それを編集した –

1

を書くことができるようになりますTable BTable AとFKでNEED PK、それ以外の場合は、参加することは不可能です。しかし、実際の更新を行うには、より良いSQLクエリがあります:

 
Update b set b.Salary = b.Salary*1.1 
From TableB b Inner Join TableA a On b.Id = a.Id 
Where a.Birthday = '05/05/1977' 
関連する問題