2

2 つのテーブル:

employee
id name
1  steve
2  rob
3  bell

position     
position_id employee_id position
1           e1         manager
2           e2         seller
3           e3         director

問題は、外部キーの形式が主キーと異なることです。SQLクエリを使用して結果を取得するにはどうすればよいですか?

name   position
steve  manager
rob    seller
bell   director
4

2 に答える 2

4

あなたemployee_idのポジションテーブルには常に「e」が前に付いていると言っていますか? もしそうなら、これは以下を使用して動作するはずCONCATです:

select e.name, p.position
from employee e join position p
on p.employee_id = concat('e',e.id)

SQL フィドルのデモ

于 2013-03-29T18:31:37.507 に答える
0

CONCAT
関数は、数値 ID を暗黙的に変換し、前に「e」を追加して、位置テーブルの employee_id と一致させるのに役立ちます。次に、ハッシュ結合を実行して、2 つのテーブルから結果を取得できます。
SQL フィドルのデモ


select E.name, 
       P.position
from Employee E 
inner join Positions P
    on P.employee_id = concat('e',E.id)
于 2013-03-29T18:53:49.967 に答える