簡體   English   中英

兩表的SQL組合

[英]SQL combination of two tables

我對 sql 和 php 很陌生。 我基本上有 2 張桌子,一張是特定組的男性圖片,另一張是同一組女性的圖片。 我想創建一個表格,其中包含可以從這個男人和女人的數據庫中生成的所有可能的夫婦,以便該組的人可以對最有可能形成的夫婦進行投票。

一張表稱為“imagesmen”,有 2 列,image_id(autoincrement),filename; 另一個稱為“imageswomen”,有 2 列 image_id(autoincrement) 和文件名。

我想將它們組合到帶有 4 列的“couples”表中:“couple_id(autoinc), image_men_id, image_women_id, votes”。

最終目的是一個網站,其中隨機選擇男性和女性 2 人,人們可以投票“可能發生”或“不太可能發生”,“投票”欄增加 1 或減少 1。

放入我的 php 文件的正確 sql 語法是什么?

非常感謝!!

如果您使用的是 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
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM