に等しい場合、MySQLを選択:のみすべてのサイズは、私はいくつかのMySQLのテーブル持っ0
`items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cat_id_p` int(11) NOT NULL,
`cat_id` int(11) DEFAULT NULL,
`brand_id` int(11) DEFAULT NULL,
...
)
`items_sizes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_id` int(11) NOT NULL,
`size_id` int(11) NOT NULL,
`count` int(11) DEFAULT '1',
...
)
を、私は、少なくとも> 1
を数えるだけ持ってitems_sizes.count < 1とないアイテムを持っているアイテムを選択する必要がありますここではSQLクエリです:
SELECT
DISTINCT `items`.*
FROM
(`items2`)
LEFT JOIN `items_sizes` ON items_sizes`.`item_id` = `items`.`id`
WHERE ...
AND `items_sizes`.`item_id` = items.id
AND `items_sizes`.`count` < 1
GROUP BY `items`.`id`
ORDER BY `items`.`id` desc
LIMIT 30
しかし、それは動作しません...文の場合、私は必要なことができますか?
SOLVED! JUST SUMとし、あなたのFROM
句でテーブル名items2
を想定し
SELECT DISTINCT `items`.*, sum(items_sizes.count)
FROM (`items`)
LEFT JOIN `items_sizes` ON `items_sizes`.`item_id` = `items`.`id`
WHERE ...
GROUP BY `items`.`id`
having sum(items_sizes.count)=0
ORDER BY `items`.`id` desc LIMIT 30
items2 - はい、申し訳ありません。 – mindsupport
@mindsupportすべてが上記の 'items2'に変更されました。 –