从具有多个表的数据库中选择特定行

时间:2017-03-07 10:52:15

标签: mysql database rows

我有一个名为“SHOP_DETAILS”的数据库,它有30个表,如Apolo,Gov,...等,每个表还有100个记录。现在我想在单个命令中搜索所有表中的特定记录。建议我实现这个任务的方法。

我正在使用XAMPP使用MySql数据库。

例如:

Apolo table

name stock price    
----|-----|------
a   |  20 |    5
b   |   2 |    4
c   |  24 |   54
d   |  47 |   19
r   |  47 |   19
f   |   7 |   12
g   |   5 |    5

Apolo12 table
name stock price
----|-----|------
fg  |  20 |    5
f   |   2 |    4
r   |  24 |   54
u   |  47 |   19
r   |  47 |   19
i   |   7 |   12
u   |   5 |    5

GOv table
name stock price
----|-----|------
l   |  20 |    5
p   |   2 |    4
v   |  24 |   54
k   |  47 |   19
u   |  47 |   19
r   |   7 |   12
g   |   5 |    5

KAv table
name stock price
----|-----|------
k   |  20 |    5
b   |   2 |    4
n   |  24 |   54
d   |  47 |   19
k   |  47 |   19
f   |   7 |   12
t   |   5 |    5

像这些一样,有许多表具有不同的值。

现在我的页面中有一个文本框,其中指定了一个名称,然后使用文本框中给出的名称,我必须搜索数据库中的所有表,并返回哪些表包含给定的输入名称。

请为我提供解决方案。

2 个答案:

答案 0 :(得分:0)

如果您只想回答这个糟糕的设计,请参阅以下内容: -

select * from Apolo a, Apolo12 a1, ... where a.name='your_wish' or a1.name='your_widh' or .....;

答案 1 :(得分:0)

改进设计的示例可能如下,在(商店,名称)上形成PK ......

stocks_table

shop    | name | stock | price 
--------+------+-------+------
apolo   | a    |    20 |     5
apolo   | b    |     2 |     4
apolo   | c    |    24 |    54
apolo   | d    |    47 |    19
apolo   | r    |    47 |    19
apolo   | f    |     7 |    12
apolo   | g    |     5 |     5
Apolo12 | fg   |    20 |     5
Apolo12 | f    |     2 |     4
Apolo12 | r    |    24 |    54
Apolo12 | u    |    47 |    19
Apolo12 | r    |    47 |    19
Apolo12 | i    |     7 |    12
Apolo12 | u    |     5 |     5
GOv     | l    |    20 |     5
GOv     | p    |     2 |     4
GOv     | v    |    24 |    54
GOv     | k    |    47 |    19
GOv     | u    |    47 |    19
GOv     | r    |     7 |    12
GOv     | g    |     5 |     5
KAv     | k    |    20 |     5
KAv     | b    |     2 |     4
KAv     | n    |    24 |    54
KAv     | d    |    47 |    19
KAv     | k    |    47 |    19
KAv     | f    |     7 |    12
KAv     | t    |     5 |     5