SQL组合两个表

时间:2014-05-28 11:15:45

标签: php mysql sql

我是sql和php的新手。我基本上有两张桌子,一张是来自特定组的男性图像,另一张是同一组女性的图像。我想创建一个表格,其中包含可以从这个男性和女性数据库制作的所有可能的夫妇,以便该群体中的人可以对最有可能形成的夫妇进行投票。

一张桌子被称为" imagesmen"有2列,image_id(自动增量),文件名;另一个名为" imageswomen"有2列image_id(自动增量)和文件名。

我想将它们组合到表格中#34;情侣"有4列:" couple_id(autoinc),image_men_id,image_women_id,投票"。

最终目的是一个网站,随机选择2名男性和女性,人们可以投票"可能发生"或者"不太可能发生",增加专栏"投票"减1或减1。

将什么是正确的sql语法放在我的php文件中?

非常感谢!!

1 个答案:

答案 0 :(得分:1)

如果您使用的是mySQL,则可以轻松使用order by rand limit 1获取单个随机数据行。然后,您可以强制将笛卡尔连接到另一个表,并有效地从每个表中获取一行:

select
    a.id,
    a.image,
    b.id,
    b.image
from
    (
        select
            id,
            image
        from
            maleTable
        order by
            rand()
        limit 1
    ) a
        join
        (
            select
                id,
                image
            from
                femaleTable
            order by
                rand()
            limit 1
        ) b
        on 1=1

当您拥有此信息时,您可以将数据存储在另一个表中,以将人们给出的投票与这样的结构相关联:

tableVotes:
fID MID Votes
2   45  14
36  2   56
...