-1

最近 UNION 関数に気付き、W3Schools で 2 つのテーブルを結合できることを知りましたが、3 つを結合したい... コードを作成しましたが、エラーが発生して機能しません。3 つのテーブルを結合することは可能ですか?どうすればこれを達成できますか? ありがとう!

エラー:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\Legendary\new\search.php on line 54

コード:

            // Fill up array with names
            $sql2 = mysql_query("SELECT * FROM members UNION ALL SELECT * FROM clans UNION ALL SELECT * FROM tournaments"); 
            while($row=mysql_fetch_array($sql2)) {
                $a[]=$row['name'];
                $b[]=$row['id'];
            }
4

2 に答える 2

4

各テーブルから同じ数の列とデータ型を同じ順序で返す必要があります ( SQL 標準の構文mySQLをサポートしていないため)。UNION CORRESPONDINGテーブルが完全には一致しないが、必要な同様の列がいくつかある場合は、 の各部分の句でUNIONそれらの列のみを指定します。SELECTUNION

テーブル スキーマが一致する場合でも、列名を指定することをお勧めします。そうしないと、将来テーブルの 1 つに列を追加すると、クエリが壊れてしまいます。

たとえば、すべてのテーブルに Name 列がある場合、次のようにすることができます。

select Name from members
UNION ALL
select Name from clans
UNION ALL
select Name from tournaments
于 2012-03-05T16:18:05.737 に答える
3

UNION は、結果を他の結果の上に積み重ねるSQL コマンドです。これが、同じ数の列が必要な理由です。特定のメンバーが参加したクランやトーナメントを確認するには、参加する必要があります。

于 2012-03-05T16:29:57.447 に答える