我有這樣的表:一個表,需要多個值從不同的行/元組
'profile_values'
userID | fid | value
-------+---------+-------
1 | 3 | [email protected]
1 | 45 | 203-234-2345
3 | 3 | [email protected]
1 | 45 | 123-456-7890
和:
'users'
userID | name
-------+-------
1 | joe
2 | jane
3 | jake
我想加入他們的行列,並有一排有兩個值的樣:
'profile_values'
userID | name | email | phone
-------+-------+----------------+--------------
1 | joe | [email protected] | 203-234-2345
2 | jane | [email protected] | 123-456-7890
我已經解決了,但它感覺笨拙,我想知道是否有更好的方法來做到這一點。這些解決方案更具可讀性或更快(優化),或者只是最佳實踐。
目前的解決方案:選擇多個表,很多條件語句:
SELECT u.userID AS memberid,
u.name AS first_name,
pv1.value AS fname,
pv2.value as lname
FROM users AS u,
profile_values AS pv1,
profile_values AS pv2,
WHERE u.userID = pv1.userID
AND pv1.fid = 3
AND u.userID = pv2.userID
AND pv2.fid = 45;
感謝您的幫助!
第一個表的最後2行應該在第一列中有2個嗎? – potatopeelings 2010-06-17 03:31:47
我只想組合一個用戶表,該用戶表在一行中有許多屬於該用戶的更多值。但是其他值在一個表中存在多行。所以把它與一行中的值結合成一個表格。當Drupal模塊用戶配置文件添加擴展用戶配置文件值的功能時,它就以這種方式工作。 – JeroenEijkhof 2010-06-17 17:19:21