[英]MySQL Query multiple tables with data to columns
我需要從三個表中提取數據,並為每個用戶在一行中返回結果。 我還需要根據字段的值使用可變列名稱。
我的查詢是:
SELECT u.USER_ID, u.FIRST_NAME, d.FIELD_ID, d.DATA, f.LABEL, f.TYPE
FROM users as u, fields as f, fieldsData as d
WHERE d.USER_ID=u.USER_ID AND f.FIELD_ID=f.FIELD_ID;
我得到的結果是:
|------------|-------------|----------|-----------|---------|----------|
| USER_ID | FIRST_NAME | FIELD_ID | DATA |LABEL | TYPE |
|------------|-------------|----------|-----------|---------|----------|
| 1 | John | 1 | Cookies | Dessert | TEXT |
| 1 | John | 2 | Chocolate | Flavor | TEXT |
| 1 | John | 3 | Milky Way | Candy | TEXT |
| 2 | Sally | 1 | Brownies | Dessert | TEXT |
| 2 | Sally | 3 | Snickers | Candy | TEXT |
|------------|-------------|----------|-----------|---------|----------|
我需要的是每個用戶只有一行,其中包含用於字段/字段數據值的列。 像這樣:
|------------|-------------|--------------|----------|---------------|---------------|------------|
| FIRST_NAME | Dessert | Dessert_TYPE | Flavor | Flavor_TYPE | Candy |Candy_TYPE |
|------------|-------------|--------------|----------|---------------|---------------|------------|
| John | Cookies | TEXT | Chocolate| TEXT | Milky Way | TEXT |
| Sally | Brownies | TEXT | NULL | NULL | Snickers | TEXT |
|------------|-------------|--------------|----------|---------------|----------------|------------|
真的可以在這方面使用一些幫助! 謝謝!!
用戶表:
|------------|-------------|--------------|
| USER_ID | FIRST_NAME | LAST_NAME |
|------------|-------------|--------------|
| 1 | John | Smith |
| 2 | Sally | Jones |
|------------|-------------|--------------|
字段表:
|------------|-------------|--------------|
| FIELD_ID | LABEL | TYPE |
|------------|-------------|--------------|
| 1 | Dessert | TEXT |
| 2 | Flavor | TEXT |
| 3 | Candy | TEXT |
|------------|-------------|--------------|
字段數據表:
|------------|-------------|--------------|---------------|
| DATA_ID | USER_ID | FIELD_ID | DATA |
|------------|-------------|--------------|---------------|
| 1 | 1 | 1 | Cookies |
| 2 | 1 | 2 | Chocolate |
| 3 | 1 | 3 | Milky Way |
| 4 | 2 | 1 | Brownies |
| 5 | 2 | 3 | Snickers |
|------------|-------------|--------------|---------------|
您必須進行內聯接:
SELECT u.USER_ID, u.FIRST_NAME, d.FIELD_ID, d.DATA, f.LABEL, f.TYPE
FROM fieldsData as d
INNER JOIN users as u ON d.USER_ID = u.USER_ID
INNER JOIN fields as f ON d.FIELD_ID = f.FIELD_ID;
我希望它會有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.