sso タイトルで必要なことを正確に表現できませんでした。私は mysql を初めて使用します。まず第一に、これは私が現在使用している sql テーブルですhttp://dl.dropbox.com/u/37057843/P2_Scripts.sql
簡単に説明します。ホテルに複数回、すべてのタイプの部屋に少なくとも 1 回滞在したクライアントを取得する必要があります。(下の表の説明を確認してください)
これらはテーブルです:
- 予約の ID (id)、予約したクライアントの ID (idCliente)、および部屋番号 (idHabita) を含む reservas (reservations)。
- clientes、ID、名前 (nombre)、姓 (apellido)、住所、電話番号 (最後の 2 つは使用されません) を含む client テーブル
- 部屋番号 (id)、m2 単位のサイズ (表面)、重要ではないいくつかの項目、および最後に価格の ID (idPrecio) を含む、habitaciones (部屋)。
- エントリの ID、部屋のタイプ (tipo)、価格 (precio) を含む precios (価格)。TIPO の値は、'individual' または 'double' です。個室や二人部屋など。
だから基本的に、
- reservas.idCliente = clientes.id
- reservas.idHabita=habitaciones.id
- Habitaciones.precio = precio.id
先に述べたように、すべてのタイプの部屋に少なくとも 1 度はいるクライアントを獲得する必要があるため、基本的には個室に 1 度以上、ダブルルームに 1 度以上いるクライアントを獲得する必要があります。
説明が下手なのはわかっていますが、どう説明すればよいかわかりません。申し訳ありません。
現時点では、このクエリを使用して、個々の部屋にいた人 (名前、姓、部屋番号) を取得しています。
SELECT c.nombre, c.apellidos, r.idHabita
FROM clientes c, reservas r, precios p, habitaciones h
WHERE r.idCliente = c.id
AND r.idHabita = h.id
AND h.idPrecio = p.id
AND p.tipo LIKE 'individual'
p.tipo も「double」かどうかを確認するために何らかのサブクエリを実行する必要があることはわかっていますが、うまくいきません。このクエリが返すクライアントは、2 人部屋にいたクライアントと同じです。実際、これまでに個室にあったのはこれらだけです。しかし、それらがダブルルームにもあったことを確認するクエリが必要です。
読んでくれてありがとう!