私はMYSQLデータベースに無関係な2つのテーブルを持っています。私はそれらの両方からデータを選択して表示したいと思います。関係のない2つのテーブルのデータを表示するにはどうすればよいですか?
私は、アルファベット順に整理、自分のサイト上で結果を表示したいと思います猫や犬の写真を参照する。私はJOINステートメントで多くの運がなかった、このシナリオでのUNIONの作業ですか?
ご迷惑をおかけして申し訳ございません。
私はMYSQLデータベースに無関係な2つのテーブルを持っています。私はそれらの両方からデータを選択して表示したいと思います。関係のない2つのテーブルのデータを表示するにはどうすればよいですか?
私は、アルファベット順に整理、自分のサイト上で結果を表示したいと思います猫や犬の写真を参照する。私はJOINステートメントで多くの運がなかった、このシナリオでのUNIONの作業ですか?
ご迷惑をおかけして申し訳ございません。
SELECT Alpha, Name, CONVERT(Cat_Id, CHAR(50)) AS Cat_Id, '' AS Dog_Id
FROM Cat
UNION ALL
SELECT Alpha, Name, '' AS Cat_Id, CONVERT(Dog_Id, CHAR(50)) AS Dog_Id
FROM Dog
ORDER BY Alpha
いくつかのコメント:私たちは、猫や犬のIDを行方不明に空の文字列を表示したい場合は
は、厳密に言えば、我々はすべてのため、CHAR
に
Cat_Id
または
Dog_Id
列をキャストする必要があります列内の値は同じ型である必要があります。
むしろ私たちは最後にORDER BY
を追加することができ、Alpha
列によってORDER BY
とソートを使用するようにUNION
クエリをラップする必要はありません。
これはうまくいきました。両方のテーブルに他の列があるので、私はUNION ALLの代わりにUNIONを使用しました。私はそのような価値観をキャストしていることに気付かず、多くのありがとう。 – sol
@ovokuro私は、MySQLではキャストなしで逃げることができると信じています。しかし、SQL Serverなどの他のより厳密なデータベースでは許可されていない可能性があります。 –
Tim Biegeleisen氏は、キャストを使うことは良い習慣になると述べています。 @ovokuro、UNION ALLを使用すると、mysqlが2つのセットの比較を一意にスキップできます。ユニオンは重複行を削除します。この場合、データが増加すると、UNION Allは長期的にパフォーマンスを改善します。 –
SELECT Alpha,Name,Cat_ID,'' as Dog_ID
FROM Cat
UNION ALL
SELECT Alpha,Name,'' as Cat_ID,Dog_ID
FROM Dog
私はフィールドを使用して一つのテーブルに2つのテーブルを結合します:typeフィールドは、猫や犬のどちらかだろう
ID Type Name Alpha
あなたが持っているように、その後残りの部分は記入されます。これにより、今後データベースを変更することなく、追加の動物タイプを追加することもできます。それはあなたのデータを表示するとき、単純な選択です。
'join'が必要です。あなたの質問を編集し、あなたが試した 'join'ステートメントを追加してください。 – randominstanceOfLivingThing
@randominstanceOfLivingThingここには何も関係がありません。 –
@randominstanceOfLivingThing無関係なテーブルにどのように参加できますか? –