2

非常に単純なmysqlクエリがあり、この「データ」が正確な「id」を含む1つの行に入るとすぐに、2つのテーブルtable1とtable2から「データ」をフェッチしたいので、準備されたリクエストを実行しました。

'select data from (
    select data from table1 union select data from table2) 
 where id = :id'

しかし、それは機能していないようです(ところで、私は単に試し'select data from table1, table2 where id = :id 'ました)が、機能しませんでした。誰かが助けることができます、私はどこで何かが欠けているのかわかりませんか?

4

4 に答える 4

2
 select * from table1  where id = :id
 union all
 select * from table2  where id = :id
于 2012-12-10T10:19:14.680 に答える
1

MySQLではユニオンは複雑で保証されていないため、ステートメントの実行はJOINに依存したいと思います。

于 2013-06-01T08:59:54.227 に答える
0

あなたが探しているのは参加だと思います。結合には複数のタイプがあり、最も一般的なのはLEFT JOININNER JOINです。

LEFT JOIN一致したデータが存在しない場合でも行を返し、結合されたデータに対してnullを返します。

INNER JOIN一致するデータが存在する必要があり、一致するデータが存在しない場合は何も返しません。

使用例INNER JOIN

SELECT
   table1.*,
   table2.*
FROM
   table1
   INNER JOIN table2 ON ( table1.id = table2.id )
WHERE
   id = :id
于 2012-12-10T10:08:35.313 に答える
0

table1からtable1.data、table2.dataを選択します。ここでtable1.id = table2.id

于 2012-12-10T10:08:47.713 に答える