выборка из 2 таблицы

Vadimka

Новичок
выборка из 2 таблицы

имеется таблица сайтов, в ней есть поле bs2.1bs3 (1 -разрешаем показывать, 2 - запрещаем)

есть 2 таблица в которой лежат сайты разрешенные или запрещенные к показу..

выбираю из 2 таблицы (bn.bn_site3 bs3) разрешенные к показу сайты (bs2.1bs3=1):
LEFT JOIN bn.bn_site3 bs3 ON
bs2.1bs3=1 AND bs3.idkto='$id_site' AND bs3.idkogo = bs.id

вопрос, как НЕвыбрать сайты запрещенных к показу (bs2.1bs3=2)

надеюсь меня кто-то понял, а то я уже сам запутался :(
 

denver

?>Скриптер
вопрос, как НЕвыбрать сайты запрещенных к показу (bs2.1bs3=2)
если у тебя есть условие выборки значит это WHERE

А нормально нужно называть таблицы и поля, тогда меньше будешь путаться, и меньше путать других...
 

chira

Новичок
Vadimka

весь запрос лень написать?
судя по приведённому куску у тебя используется три алиаса: bs,bs2,bs3
таблицы может и две ...
опиши подробнее, может и сам разберёшся

скорее всего условие bs2.1bs3=1 нужно перенести в WHERE
 

BNS

Новичок
извращение какое-то...

SELECT c.* FROM catalog c, prices p WHERE c.show='1' AND и понеслась...

обзываешь таблицы через буковки и пишешь запрос. в виде ответа получишь то, что напишешь перед FROM
 

Vadimka

Новичок
разрешенные к показу сайты выбираю:
WHERE bs3.idkto='1' AND bs3.idkogo=bb.id_site
получаю:
+-------+--------+-------+----+------------+------+
| idkto | idkogo | prior | id | user_limit | vs |
+-------+--------+-------+----+------------+------+
| 1 | 31 | 1 | 31 | 9 | 0 |
| 1 | 40 | 1 | 40 | 0 | 0 |
+-------+--------+-------+----+------------+------+

если делаю запрещенные к показу:
WHERE bs3.idkto='1' AND bs3.idkogo!=bb.id_site
получаю:

| 1 | 31 | 9 | 0 |
| 1 | 39 | 0 | 0 |
| 1 | 40 | 0 | 0 |
| 1 | 52 | 0 | 0 |


получается что 31и 40 сайты выбираются что в разрешенных что в запрещенных :(
 

chira

Новичок
Vadimka

ты наверно думаешь, что мы все здесь, очень хорошо знаем твою систему и лишние подробности нам ни к чему ...

пример SQL, возможно натолкнёт тебя на мысль ...
Код:
SELECT t.*
FROM bn_site3 bs3
 INNER JOIN table1 bs1 ON bs1.idkogo=bs3.id_site AND bs1.1bs3=1
 LEFT JOIN table1 bs2 ON bs2.idkogo=bs3.id_site AND bs2.1bs3=2
WHERE bs3.idkto='$id_site' AND bs2.id IS NULL
 
Сверху