我的mysql数据库中有两个表: female 和 male 。它们每个都有3列: id , name 和 age 。 我希望显示一个html表,其中包含两个表的数据。
我有这些代码:
$result = mysql_query("SELECT * FROM female ORDER BY age DESC LIMIT 20");
while($row = mysql_fetch_array($result))
{
$age = $row['age'];
$name = $row['name'];
}
和
$result01 = mysql_query("SELECT * FROM male ORDER BY age DESC LIMIT 20");
while($row01 = mysql_fetch_array($result01))
{
$age01 = $row01['age'];
$name01 = $row01['name'];
}
那么我应该如何混合这些表(数据)呢?我应该使用mysql UNION
函数还是其他什么?这项工作的适当代码是什么?
...谢谢
答案 0 :(得分:3)
你应该使用
SELECT * FROM female ORDER BY age DESC LIMIT 20
UNION
SELECT * FROM male ORDER BY age DESC LIMIT 20
或
SELECT * FROM
(SELECT * FROM female
UNION
SELECT * FROM male)
ORDER BY age DESC LIMIT 20
最后,考虑一下:为什么要为男性和女性使用单独的表格?你可以使用一个带有色谱柱的表来进行性行为......
答案 1 :(得分:1)
嗯,最合适的解决方案是不要有单独的male
和female
表,而是要有一个带有people
列的gender
表。这样,当你真的将所有这些行都归属于同一个表时,你不必去搞工会化表并疯狂地合并它们。毕竟,如果你真的只想选择男性或女性,那就是WHERE
的用途。
但是如果这是一个遗产数据库,并且架构一成不变,我感到很痛苦,Marco's solution可以解决问题:)