繁体   English   中英

从具有相同列名 MYSQL/PHP 的引用表上的多个表中选择

[英]Select from multiple tables on reference table with same column name MYSQL/PHP

我需要一些 MySQL/PHP 方面的帮助。 从代码的角度来看,哪个执行速度更快。

我有下表

1. table_content
--------------------------------
id      | section   | content_id
--------------------------------
1       | A         | 15
2       | B         | 25
3       | A         | 9
--------------------------------


2. table_a
--------------------------------
id      | name      | message
--------------------------------
9       | John      | Hello Everyone
15      | Smita     | Hi
17      | Vinayak   | How are you?
--------------------------------


3. table_b
--------------------------------
id      | label     | description
--------------------------------
1       | David     | D1
5       | Alia      | D2
25      | Vinay     | D3
--------------------------------

我有上面的表格结构。 对我来说table_content是主表。 我想通过 MySQL/PHP [As array and section as key] 下面的输出。

Output
------------------------------------------------
id      | section   | name      | message
------------------------------------------------
1       | A         | Smita     | Hi
2       | B         | Vinay     | D3
3       | A         | John      | Hello Everyone
------------------------------------------------

我已经尝试过 SWITCH 案例。 但没有得到确切的输出。

哪个是更好的性能和更快的执行? 使用 MySQL 或 PHP。 我有成千上万的这样的数据。

请帮我解决这个问题。

应该通过 JOIN 实现。

还要确保您配置了更合适的索引,否则当您获得大量数据时,它的性能会很差。

正如我在评论中发布的那样,您需要Join两个表,必须是UNION

 SELECT tc.`id`, tc. `section` ,t1.`message` FROM table_content tc JOIN (SELECT `id`, `name`, `message` FROM table_a UNION SELECT `id`, `label`, `description` FROM table_b) t1 ON tc.`content_id` = t1.`id`
\n身份证 | 部分 | 信息       \n -: |  :------ |  :-------------\n  1 | 一个 | 你好            \n  2 | 乙 |  D3            \n  3 | 一个 | 大家好\n

db<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM