1

参加しようとしているテーブルがいくつかあります。

必要なことを行う方法がわからないので、説明するのが少し難しいので、これまでのところクエリを示します。

SELECT  exp_channel_data.field_id_102,
        exp_channel_data.field_id_104,
        exp_channel_data.field_id_126,
        exp_channels.deft_status
FROM exp_channel_data
  INNER JOIN exp_channels
    ON exp_channels.channel_id = exp_channel_data.channel_id
  INNER JOIN exp_channel_titles
    ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
AND exp_channel_titles.channel_id = 19

動作しないビットは、AND exp_channel_titles.channel_id=19です。

問題は、0の結果セットが返されることです。しかし、両方の列にデータが含まれていることは知っています。それらは完全に別個のデータセットですが。

exp_channels

日、時間、価格などのすべてのデータが含まれています

exp_channel_titles

すべてのタイトル情報が含まれています

しかし、次の結果セットを取得できるように、2つを組み合わせる必要があります。

「タイトル、日、先生、時間」など

だから私は誰かがこれを行う方法について解決策を持っているかどうか疑問に思っていましたか?

ありがとう!

4

1 に答える 1

2

内部結合を使用しているためchannel_id、1つの行のすべてが同じである必要があります。

どういう意味ORですか?

SELECT  exp_channel_data.field_id_102,
        exp_channel_data.field_id_104,
        exp_channel_data.field_id_126,
        exp_channels.deft_status
FROM exp_channel_data
  INNER JOIN exp_channels
    ON exp_channels.channel_id = exp_channel_data.channel_id
  INNER JOIN exp_channel_titles
    ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
OR exp_channel_titles.channel_id = 19

または、を使用できますIN

WHERE exp_channels.channel_id IN (18, 19)
于 2012-06-18T08:53:49.733 に答える