我有兩個表:如何從給定條件的行中選擇表中的所有行?
users
| id | name |
|----|--------|
| 0 | Bob |
| 1 | Ted |
parameters
| id | parameter | value |
|----|-----------|--------|
| 0 | a | 5 |
| 0 | b | 9 |
| 0 | c | 0 |
| 1 | a | 27 |
| 1 | b | 0 |
*parameters.id references users.id
不幸的是,標準化值的唯一方法是在提供的表格。參數對所有用戶都不一致,並且不能是列。
我必須爲每個用戶選擇所有參數和它們的值,但是我可能需要查詢參數特定值(同時仍抓住所有行用戶。)
例如,我可以想其中參數一個具有值的所有參數大於10這將返回:
| id | name | parameters | values |
|----|-------|-------------|----------|
| 1 | Ted | a,b | 27,0 |
我可以從參數表中獲取的所有數據,但我不知如何我可以有條件地選擇數據:
SELECT a.*, b.params, b.values
FROM users AS a
JOIN (
SELECT id, GROUP_CONCAT(parameters) AS params, GROUP_CONCAT(value) AS values
FROM parameters
GROUP BY id
) b
ON a.id=b.id
有沒有辦法實現這一點,還是有更好的數據庫設計?
(如果任何人有這個問題的一個更好的標題......隨意)
誤讀了問題 - nm! – user3791372 2014-09-20 16:14:19