2

2 つのテーブルを結合しようとしていますが、行き詰まっています。2 つのテーブルには、同じ名前の行がいくつかあります。

table1: shop 
rows: sid, typeid, name, email_id, url, logo, app_link, phone, status, username, password

table2: shopnews
rows: nid, typeid, sid, url, logo, start_date, end_date, add_date, name, short_detail, status, updated_on

私がやろうとしているのは、shopnews から * を取得し、両方のテーブルで sid が同じショップから名前と URL を取得することです。

ここで何をしているのか本当にわかりませんが、コードの一部を次に示します。

  mysql_select_db($db, $con);
  $result = mysql_query("SELECT sid AS ssid, name AS ssname, url AS ssurl, logo AS sslogo, status AS sstatus FROM shop INNER JOIN shopnews ON shop.ssid = shopnews.sid"); 

  while($row = mysql_fetch_array($result))
  {
      $nid=$row['nid'];
      $typeid=$row['typeid'];
      $sid=$row['sid'];
      $shopname=$row['ssname'];
      $shopurl=$row['ssurl'];
      $url=$row['url'];
      $logo=$row['logo'];
      $start_date=$row['start_date'];
      $end_date=$row['end_date'];
      $add_date=$row['add_date'];
      $name=$row['name'];
      $short_detail=$row['short_detail'];
      $shopstatus=$row['sstatus'];
      $status=$row['status'];
  }

警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しています。ブール値が指定されています

誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

0

これを試して:

SELECT sn.*, s.name ssname, s.url surl
FROM shop s INNER JOIN shopnews sn ON s.sid = sn.sid
于 2012-12-21T11:14:45.990 に答える