2017-12-14 5 views
0
select 
merchandise.merchname, 
order_item.itemid, 
order_item.orderid 
from merchandise Inner join order_item 
on merchandise.MerchName = order_item.itemid 
EXCEPT 
select 
MerchName, 
order_item.itemid, 
order_item.orderid 
from merchandise left join order_item 
on merchandise.ItemID = order_item.itemid 

販売されていないものを出力する必要があります。私がここで間違っていることを確かめない。 MySQLにはまだまだ新しいものです。SQLのEXCEPTクエリで出力されない

+0

MySQLがサポートしていますか? – Uueerdo

+0

正しく出力されるはずです。エラーが発生しています。 varchar値 'M82XTi/Marker'をデータ型intに変換するときに変換に失敗しました。 私はそれが私の結合コマンドだと感じました。最後にグループを削除しました – jh86

答えて

1

あなたの参加は、容疑者になります。

Inner join order_item on merchandise.MerchName = order_item.itemid

merchandise.MerchNameは本当にこれは読むべきクエリの残りの部分を見てorder_item.itemid

と同じタイプ/ IDを持っている:

inner join order_item on merchandise.ItemID = order_item.itemid

EDIT:MariaDBバージョン10.3.0のexcept節が追加されましたが、わかりません。実際にMySQLを使用しているのであれば、実際にはMariaDBを使用している場合は、例外を使用することができます。

+0

エラーが発生しました: カラム 'merchandise.MerchName'は、集計関数またはGROUP BY句。 – jh86

+0

@ jh86私は上記のあなたのコメントによってGROUP BYエラーを解決したと思います。そして、あなたのSQLのように見えるintとtextカラムを比較する際に問題が発生しましたが、まだMerchNameとitemidを比較しています。 – fcbsd

+0

私はGROUP BYコマンドを削除して、必要なデータを幾分収集することができましたが、売れていないものは見ていません。 – jh86

関連する問題