gpt4 book ai didi

mysql - 从现有值在 mysql View 中创建新列

转载 作者:行者123 更新时间:2023-11-30 23:54:10 24 4
gpt4 key购买 nike

我在这方面非常陌生,所以如果我能澄清一下,请告诉我。本质上,我希望根据现有表中列的值在 mysql View 中创建一个新列。我在前端使用 phpGrid 输出。

例如 - 假设我有现有的列 question_id :

    name | question_id | answer
----------------------------------
Joe | 1 | yes
Joe | 2 | no
Ann | 1 | maybe
Ann | 2 | kinda

我有自定义 View my_view我希望列是这样的(不一定在前面有 question_id=,但不管怎样):

    name  | question_id=1 | question_id=2
------------------------------------------
Joe | yes | no
Ann | maybe | kinda

或者类似的东西。我如何获得 question_id值成为列,并将答案放在正确的位置?

此外,如果 name来自一张表,question_id来自另一个,我如何才能在 my_view 中获得正确关联的值? ? name值通常有重复项,但它们具有单独的条目 ID。

干杯,谢谢!

编辑: Create MySQL view using distinct values as columns是正确的想法,但我收到关于错误语法的错误 #1064。

此外,我不确定它是否解决了让数据按唯一条目 ID 对齐的第二个问题。我试着用这个:1052: Column 'id' in field list is ambiguous解决模棱两可的问题,但随后我收到错误 #1060,指出存在重复。

编辑 2: 这是我用来尝试从两个单独的表中获取列的代码,包括共享的 registration_id列存在于两者中。我从上面的帖子中获得了有关解决模棱两可的问题的代码:

CREATE VIEW access AS
SELECT fname,lname,email,city,state,country_id,phone,payment_status,event_id,wp_events_attendee.registration_id,wp_events_answer.registration_id,question_id,answer
FROM wp_events_answer
JOIN wp_events_attendee ON wp_events_attendee.registration_id = wp_events_answer.registration_id

它给了我“#1060 - 重复的列名‘registration_id’”。也不确定如何将其集成到 Create MySQL view using distinct values as columns 中看到的代码中.我试着做了一个测试:

  CREATE VIEW access AS
SELECT
fname,lname,email,city,state,country_id,phone,payment_status,event_id,wp_events_attendee.registration_id,wp_events_answer.registration_id,question_id,answer,registration_id,
MAX(IF(question_id = '1', status, NULL)) FIRST,
MAX(IF(question_id = '11', status, NULL)) DOB,
FROM wp_events_answer, wp_events_attendee
JOIN wp_events_attendee ON wp_events_attendee.registration_id = wp_events_answer.registration_id
GROUP BY registration_id;

但是得到“#1064 - 你的 SQL 语法有错误;检查对应于你的 MySQL 服务器版本的手册,在第 6 行的‘FROM wp_events_answer,wp_events_attendee GROUP BY registration_id’附近使用正确的语法”。谢谢!

最佳答案

我对 sql View 了解不多,但在连接表时,您的查询似乎有问题。

如果需要连接 3 个表,按照下面的查询。

SELECT `table1`.`column1`,`table2`.`column2` 
FROM `table1`
JOIN `mapping_table`
JOIN `table2`
ON `table1`.`table1_id`=`mapping_table`.`table1_foreign_key`
AND `mapping_table`.`table2_foreign_key`=`table2`.`table2_id`
GROUP BY `table1`.`group_column`

希望这能帮助你创建你想要的 View

关于mysql - 从现有值在 mysql View 中创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31777238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com