2012-02-13 10 views
1

私はこの2つのクエリで怒っているでしょう、なぜ私は81行と他の0.を返す自分自身を説明することはできません誰かがこれで私を助けることができますか?2つの非常によく似たクエリが異なる結果を返します。なぜですか?

-- Working 
SELECT * FROM 
boat_standard_specification_items AS BoatStandardSpecificationItem JOIN standard_specification_items AS StandardSpecificationItem 
ON(BoatStandardSpecificationItem.standard_specification_item_id = StandardSpecificationItem .id) 

-- Not working 
SELECT * FROM 
`boat_standard_specification_items` AS `BoatStandardSpecificationItem` JOIN `standard_specification_items` AS `StandardSpecificationItem` 
ON (`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id') 

私はどのような方法

+0

異なる結果を返すように明らかである?? –

+0

私は結果がここのポイントではないと思っています。問題は私が<81 rows>の結果と<0 rows>の結果を得ていたことです。つまり、クエリが機能しませんでした。 –

+0

あなたは私の答えが以下の通りです:-) –

答えて

3

に役立つことができるなら、彼らは同じクエリじゃないのWindows OS上でです。 2番目のものには、次のものがあります。

ON (`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id') 
                     ^--- 

引用符が変更されています。一重引用符はクエリ内のSTRINGを定義するので、2つのフィールドを比較しないで、フィールドと文字列を比較します。

+0

Oh man ..私は構文のハイライターが必要です、私は正確な瞬間を私は自分自身の質問をstackoverflowで読むことがわかりました...(まあ、それはPHPフレームワークを介して書かれているので、私は少し許されることができます) –

+0

色が物事をはるかに簡単になります.. 。 –

0

"動作していない"のように、JOINにリテラル文字列を使用しているようです(一重引用符に注意してください)。残りのクエリはバックティックを使用しているので、一度試してみてください。

1

テーブル名を一重引用符で囲むことはできません。読みやすくするために何かを置いておきたい場合は[と]を使います。

0

これらのクエリは異なっています.2番目のフィールドでは、必要のない文字列にフィールドを一致させようとしています。

(`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id') 

あなたがBoatStandardSpecificationItemを比較している2番目のクエリでJoin

1

`BoatStandardSpecificationItem`.`standard_specification_item_id` = 'StandardSpecificationItem.id' 

についての詳細を学ぶことがあります。最初のクエリで文字列'StandardSpecificationItem.id'

SELECT * FROM 
boat_standard_specification_items AS BoatStandardSpecificationItem JOIN standard_specification_items AS StandardSpecificationItem 
ON(BoatStandardSpecificationItem.standard_specification_item_id = StandardSpecificationItem .id) 

あなたがBoatStandardSpecificationItemを比較していると​​。別の列StandardSpecificationItem .id

と​​彼らが結果がどのようなものです

関連する問題