Помогите составить sql запрос

12 3
A
На сайте с 18.02.2009
Offline
46
1563

Есть массив $k с номерами, есть 2 таблицы, как составить запросы, чтобы выводил дынные по номерам забитым в $k, т.е. один номер может быть только в одной из таблиц. :popcorn:

Аккаунты на торрент-трекеры. () Тут дают деньги!!! (http://Pop-Bazar.com/registration.php?ref=2115)
Станислав
На сайте с 27.12.2009
Offline
258
#1

информативно, читал 4 раза, так и не понял что нужно. Поподробнее можно?

Мы там, где рады нас видеть.
A
На сайте с 18.02.2009
Offline
46
#2

Ну в массиве $k забиты значения:

123

3425

546

23

Есть 2 таблицы table1 И table2, нужно выводить дынные с этих таблиц, соответствующим цифрам забитым в массиве $k.

Т.е. если в таблицы 1 есть запись с id=123, но записи с id=123 нету в таблицы 2. Нужно вывести все данные двух таблиц, в которых есть id'ы забитые в массиве $k.

C
На сайте с 04.02.2005
Offline
291
#3

массив $k преобразовать в строку $kStr, с разделителем "запятая"

затем построить запрос

SELECT * FROM `table` WHERE id in ($kStr)

A
На сайте с 18.02.2009
Offline
46
#4

Так, а как сразу из 2х таблиц?

[Удален]
#5

SELECT table.var, table2.var FROM table, table2 WHERE table.id='$k' and table2.id='$k'

что-то типа того

C
На сайте с 04.02.2005
Offline
291
#6

Select * FROM (

SELECT * FROM `table1` WHERE id in ($kStr)

UNION

SELECT * FROM `table2` WHERE id in ($kStr))

ORDER by id

A
На сайте с 18.02.2009
Offline
46
#7

Что-то вообще не получается :(

allmuz добавил 10.10.2011 в 00:07

Грубо говоря, передаю в корзину id товаров, а товары в разных таблицах, вот и надо сформировать список заказанных товаров.

C
На сайте с 04.02.2005
Offline
291
#8

Не получается - это как?

Что говорят раздельно выполненные запросы

SELECT * FROM `table1` WHERE id in ($kStr)

SELECT * FROM `table2` WHERE id in ($kStr))

???

Не получаться может, например по причине несоответствия типов полей таблиц при операции UNION

A
На сайте с 18.02.2009
Offline
46
#9

foreach($count_staf as $k=>$v)
{

for($cnt = 0; $cnt < sizeof($count_staf); $cnt++)
$string .= $array[$cnt];
//print " $string";
//print "$k $v<br>";
// $arr = explode(",",$k);
//print "$arr[0]<br>$arr[1]";
//$query=mysql_query("SELECT * FROM IMPORT_CSV, masla WHERE IMPORT_CSV.nomer_detali='$k' and masla.id_t='$k'");
$query=mysql_query("SELECT * FROM masla WHERE id_t in ('$string')");
if(!$query) exit(mysql_error());
while($cena = mysql_fetch_assoc($query))
{

allmuz добавил 10.10.2011 в 11:13

$count_staf данные с куков

C
На сайте с 04.02.2005
Offline
291
#10

1. т.е о функции php implode() ничего не слышали?

2. а разве я показывал код с содержимым IN взятый в кавычки?

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий