我需要获取与列名匹配的数据表单,然后使用外键将其与其他表连接。 这是表结构: -
表: user_master
id | user_name | user_password | status
1 | user_name_1 | password | 1
2 | user_name_2 | password | 1
3 | user_name_3 | password | 0
表: user_meta
id | user_id | meta_key | meta_value
1 | 1 | fname | kris
2 | 1 | lname | tris
3 | 2 | fname | mac
4 | 2 | lname | book
是否有可能获得这样的结果?
id | user_name | user_password | status | fname | lname
1 | user_name_1 | password | 1 | kris | tris
2 | user_name_2 | password | 1 | mac | book
这样我就可以使用查询并输出像这样的数据
foreach ($rows as $row) {
echo $row['id']
ehco $row['fname'] .... and so on
我正在使用this library进行数据库MySQLi查询
如果有可能,请你帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
试试这个:
Select
id , user_name , user_password ,status
(select meta_value from user_meta um where um.user_id = umst.user_id and meta_key like 'fname') fname ,
(select meta_value from user_meta um where um.user_id = umst.user_id and meta_key like 'lname') lname
from
user_master usmt
答案 1 :(得分:0)
使用以下查询,这将适合您。
SELECT u.id,u.user_name,u.user_password,u.status,
(CASE WHEN um.meta_key = 'fname' THEN um.meta_value END) as fname,
(SELECT meta_value from user_meta WHERE meta_key = 'lname' AND user_id = u.id ) as lname
FROM `user_master` as u
INNER JOIN user_meta as um
ON um.user_id = u.id
GROUP BY id