搜索/更新具有相同ID的不同表中的数据(MYSQL)

时间:2014-01-28 10:37:36

标签: php mysql sql sql-server database

我需要一些帮助mysql的东西。

我有一个主数据库SE,在数据库内我有大约7个不同的表。

所有表格都有不同人士的记录及其唯一识别号码ID“Sxxxxxxxx”。

我需要使用该特定ID将我的查询更新/显示到我的3个表中。 例如

A) Info_ID |一个|两个|
B) Info_ID |三个| 4 |
C) Info_ID |五|六|
D) Info_ID |七| 8 |
E) Info_ID |九|十|

所有不同的表都有ID S1234567A的记录为Info_ID。

我想更新到

表A,列两个,数据“hello”
表C,列,数据“测试”
表格E,列,数据“更新”

所有这些都是ID号S1234567A

我是这个网站的新手,我希望你们能理解我并帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

更新和显示将需要两种完全不同的方法

对于更新,AFAIK除了执行3个单独的更新语句之外别无选择:

update A set Col2 = 'hello' 
where info_id = 'S1234567A';
update C set Col6 = 'testing' 
where info_id = 'S1234567A';
update E set Col10 = 'ten' 
where info_id = 'S1234567A';

对于查询方面,您可以组合结果

select A.Col1, ACol2, C.Col5, C.Col6, E.Col9, E.Col10
from 
   A inner join C
     on A.info_id = C.info_id
   inner join E
     on A.info_id = E.info_id
where 
   A.info_id = 'S1234567A';

如果列配对(A.Col1,C.Col5和E.Col9)和(A.Col2,C.Col6和E.Col10)是可比较的,您也可以在一个联合中聚合它们。

select 
   A.Col1 as FirstColumn, ACol2 as SecondColumn
from 
   A 
where 
   A.info_id = 'S1234567A'

union

select 
   C.Col5, C.Col6
from 
   C 
where 
   C.info_id = 'S1234567A'

union

select 
   E.Col9, E.Col10
from 
   E 
where 
   E.info_id = 'S1234567A';