0

これでちょっと時間を過ごして....私は次の簡略化された表を持っています

+---------+   +-------------+   +-------------+
| fields  |   | details     |   | customers   |
+---------+   +-------------+   +-------------+
| id      |   | customer_ID |   | customer_ID |
| caption |   | field_id    |   | progress    |
+---------+   | field_value |   +-------------+
              +-------------+

fields テーブルには、first_name、last_name など、ID を持つ複数の「フィールド」があり、詳細には適切な値が含まれ、Customers テーブルは「マスター」顧客情報を処理します。

私がやろうとしているのは、details.field_value、fields.caption WHERE details.customer_id = customers_id AND customers.progress = X を取得し、last_name の ID で注文することです。

私はこれを機能させようとして夢中になっているので、ここで質問して、その間に昼食をとろうと思いました.

助けてくれてありがとう!

4

3 に答える 3

1

INNER JOINクエリでこれを達成できると思います

SELECT c.id, c.caption
FROM customers a
INNER JOIN details b
ON a.customers_ID = b.customers_ID
INNER JOIN fields c
ON b.field_id = c.id
WHERE a.progress = ?
ORDER BY b.last_name ASC
于 2013-06-09T18:16:08.523 に答える
0

これを試して:

SELECT d.field_value, f.caption
FROM (details d INNER JOIN fields f ON d.field_id = f.id)
INNER JOIN customers c ON d.customer_ID = c.customer_ID
WHERE c.progress = 'X'
ORDER BY f.id
于 2013-06-09T18:21:16.800 に答える
0

一方通行:

select c.customer_ID,
       group_concat(concat(f.caption,':',d.field_value)) Data_Fields,
       max(case f.caption when 'last_name' then d.field_value end) last_name
from customers c
join details d on c.customer_ID = d.c.customer_ID
join fields f on d.field_id = f.id
where c.progress=?
group by c.customer_ID
order by last_name
于 2013-06-09T18:22:06.937 に答える