0

2 つのテーブル、チケット、状態があります。チケットには、state.id に対応する外部キー状態があります。

SELECT tickets.id AS 'Ticket Id', 
       state.description AS 'State'
FROM tickets 
LEFT JOIN state ON tickets.state = state.id
WHERE tickets.id = 1;

したがって、チケットに ticket.id = 1 および ticket.state = 1 の行があり、state.id = 1 および state.description = 'Open' の行があるとします。

チケット ID = 1、状態 = オープンという結果を取得するにはどうすればよいですか?

編集:これは機能しますが、何らかの理由で状態テーブルが空でした...

4

2 に答える 2

1

みたいですね

SELECT tickets.id AS 'Ticket Id', 
       state.description AS 'State'
FROM tickets 
LEFT JOIN state ON tickets.state = state.id
WHERE tickets.id = 1 and state.state = 'open';
于 2012-07-01T13:41:51.990 に答える
1

私には、それがあなたが書いたクエリから得られるもののように見えます...?

データベースから正確な結果「Ticked Id = 1、State = Open」が必要な場合は、concat() 関数を調べます。状態をチケット テーブルに直接入れたい場合は、最初に新しい列を追加し、更新クエリを使用してそれを更新してから、古い ticket.state 列を削除します。または、本当に必要なのは、上記のクエリを使用して定義されたビューである可能性があります。

ビュー ticketstate を SELECT ticket.id として作成 ...

于 2012-07-01T13:42:54.090 に答える